我有一个包含以下数据的文件(nameOfTheFile.txt):
-200.0000 23.0786 0.2402 0.9807 2.7610 0.7627 0.3168 1.4249
0.8745 0.4953 1.4652 5.9483 0.0000 0.6919 2.2648 0.3407
0.0000 0.6958 0.5775 0.0000 0.6171 2.6211
-199.9800 23.0706 0.2401 0.9804 2.7598 0.7632 0.3167 1.4246
0.8743 0.4952 1.4646 5.9452 0.0000 0.6917 2.2638 0.3407
0.0000 0.6955 0.5774 0.0000 0.6170 2.6203
我将数据导入一个数组中,以备日后使用。但是,当我执行以下操作
with open(os.path.join(sys.path[0], 'nameOfTheFile.txt'), 'r') as file:
lines = file.readlines()
tab = []
for i in range(len(lines)):
tab.append(lines[i])
print(tab)
我明白了
['-200.0000 23.0786 0.2402 0.9807 2.7610 0.7627 0.3168 1.4249\n', ' 0.8745 0.4953 1.4652 5.9483 0.0000 0.6919 2.2648 0.3407\n', ' 0.0000 0.6958 0.5775 0.0000 0.6171 2.6211\n', ' -199.9800 23.0706 0.2401 0.9804 2.7598 0.7632 0.3167 1.4246\n', ' 0.8743 0.4952 1.4646 5.9452 0.0000 0.6917 2.2638 0.3407\n', ' 0.0000 0.6955 0.5774 0.0000 0.6170 2.6203\n']
我知道如何摆脱\ n,但是当我这样做时,我仍然得到以下输出:
['-200.0000 23.0786 0.2402 0.9807 2.7610 0.7627 0.3168 1.4249', ' 0.8745 0.4953 1.4652 5.9483 0.0000 0.6919 2.2648 0.3407', ' 0.0000 0.6958 0.5775 0.0000 0.6171 2.6211', ' -199.9800 23.0706 0.2401 0.9804 2.7598 0.7632 0.3167 1.4246', ' 0.8743 0.4952 1.4646 5.9452 0.0000 0.6917 2.2638 0.3407', ' 0.0000 0.6955 0.5774 0.0000 0.6170 2.6203']
两行之间还用逗号隔开,使得nameOfTheFile.txt的每一行都成为数组的一项。因此,当我要打印时:
print(tab[0],tab[1])
我得到
-200.0000 23.0786 0.2402 0.9807 2.7610 0.7627 0.3168 1.4249 0.8745 0.4953 1.4652 5.9483 0.0000 0.6919 2.2648 0.3407
我想要的是,不是nameOfTheFile.txt的每一行都被视为一项,而是每一值,这将通过在前面加上打印内容来给我:
-200.0000 23.0786
请问有办法吗?
谢谢!
答案 0 :(得分:0)
您的文件由文本行组成,但您需要数字。您必须自己进行转换。
tab = []
with open(os.path.join(sys.path[0], 'nameOfTheFile.txt'), 'r') as file:
for line in file:
tab += [float(n) for n in line.strip().split()]
print(tab)
答案 1 :(得分:0)
您似乎需要list.extend
例如:
tab = []
with open(os.path.join(sys.path[0], 'nameOfTheFile.txt')) as infile:
for line in infile:
tab.extend(line.strip().split()) #Strip newline char and split by space.
print(tab[0],tab[1])
输出:
-200.0000 23.0786
答案 2 :(得分:0)
只需读取整个文件并拆分其内容即可:
with open('nameOfTheFile.txt', 'r') as file:
text = file.read()
tab = text.split()
print(tab)
print(tab[0], tab[1])
或使用
tab = [float(i) for i in text.split()]
如果您需要数字而不是字符串。