我想使用 Python 将此文本文件拆分为 3 个(称为 x
、y
和 e
)列表,但我做不到似乎做到了。
这是文本文件(称为数据)的样子:
x y e
-2 2.1 0.170358869161
0 2.4 0.170202773308
2 2.5 -0.138557648063
4 3.5 0.187965696415
6 4.2 -0.473073365465
这是我目前无法使用的代码:
x=[]
y=[]
e=[]
try:
data = open('data.txt', 'rt')
except:
sys.exit('cannot find file')
with data:
try:
x.append(data[:1])
y.append(data[2:3])
e.append(data[4:5])
except:
sys.exit('cannot create lists')
最佳答案
这样做:
with data as f: # f is the file object
for line in f: # you can iterate over a file object line-by-line
xi, yi, ei = line.split()
x.append(xi)
y.append(yi)
e.append(ei.strip()) # ei will have a \n on the end
如果您对它们的形状的假设是正确的,您可以在附加它们时将它们强制转换为整数或 float 。
如果你有 pandas,我推荐 read_csv
:
>>> import pandas as pd
>>> pd.read_csv('data.txt', delim_whitespace=True)
x y e
0 -2 2.1 0.170359
1 0 2.4 0.170203
2 2 2.5 -0.138558
3 4 3.5 0.187966
4 6 4.2 -0.473073
关于python - 通过垂直拆分文本文件创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039878/