Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 编写一个程序来读取/关闭文件,并显示以下输出_Python_Python 3.x_List - Fatal编程技术网

Python 编写一个程序来读取/关闭文件,并显示以下输出

Python 编写一个程序来读取/关闭文件,并显示以下输出,python,python-3.x,list,Python,Python 3.x,List,我需要编写一个Python程序来读取/关闭文件(即Stock.txt),并使用list的split方法显示以下输出。Stock.txt中只有一行是投资者的股票投资组合,由四只股票的投资金额组成 文件Stock.txt的内部内容: hsbc, 84564.24, boc, 46392.45, manulife, 34562.98, galaxy, 89321.23 01234567890123456789012345678901234567890123456789 The amount inv

我需要编写一个Python程序来读取/关闭文件(即Stock.txt),并使用list的split方法显示以下输出。Stock.txt中只有一行是投资者的股票投资组合,由四只股票的投资金额组成

文件Stock.txt的内部内容:

hsbc, 84564.24, boc, 46392.45, manulife, 34562.98, galaxy, 89321.23
01234567890123456789012345678901234567890123456789

The amount invested in HSBC:       844563.24
The amount invested in BOC:        465392.46
The amount invested in MANULIFE:   345612.98
The amount invested in GALAXY:     893421.23

STOCK      PERCENTAGE
---------------------
HSBC           33.13%
BOC            18.26%
MANULIFE       13.56%
GALAXY         35.05%

Total Amount Invested: $2,548,989.91
我只知道如何编写相关的Python代码来打开/关闭文件。我真的不知道应该编写什么python代码来显示分配要求我执行的以下预期输出

我当前的代码:

infile = open("Stock.txt", 'c')
data = [line.rstrip() for line in infile]

infile.close()
但我不确定我当前的代码是否正确,因为我是Python初学者

此任务的预期输出:

hsbc, 84564.24, boc, 46392.45, manulife, 34562.98, galaxy, 89321.23
01234567890123456789012345678901234567890123456789

The amount invested in HSBC:       844563.24
The amount invested in BOC:        465392.46
The amount invested in MANULIFE:   345612.98
The amount invested in GALAXY:     893421.23

STOCK      PERCENTAGE
---------------------
HSBC           33.13%
BOC            18.26%
MANULIFE       13.56%
GALAXY         35.05%

Total Amount Invested: $2,548,989.91

我不认为我可以为你完全解决它,但我可以让你开始

first_line = data[0] # 'hsbc, 84564.24, boc, 46392.45, manulife, 34562.98, galaxy, 89321.23'
real_data = first_line.split(', ') # ['hsbc', '84564.24', 'boc', '46392.45', 'manulife', '34562.98', 'galaxy', '89321.23']
我们的文件中有一行,因此我们使用
数据[0]
获取第一行,然后使用
拆分为一个列表。拆分(',')

第一行从第0行开始每隔一秒获取
real_data
元素。 第一行从第一行开始每隔一秒获取
real_data
。 两者都使用列表拼接语法: 列表[开始:结束:步骤]

总而言之:

infile = open("stocks.txt", 'r')
infile.close()
data = [line.rstrip() for line in infile]
first_line = data[0]
real_data = first_line.split(', ')
stock_names = real_data[::2]
stock_values = real_data[1::2]
for name, value in zip(stock_names, stock_values):
    print("something")
    # perform calculations
# Good luck :)
注意:我已将
infle.close()
移到开头,因为文件不需要一直打开