python - 通过垂直拆分文本文件创建列表

标签 python list pandas text split

我想使用 Python 将此文本文件拆分为 3 个(称为 xye)列表,但我做不到似乎做到了。

这是文本文件(称为数据)的样子:

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/

相关文章:

python - 通过 paramiko 加载 .bashrc 的 ssh

list - Odoo 8 Many2many 验证和删除行

list - Haskell 函数中的非详尽模式

python - 如何使用 pandas 返回 boolean 值比较组中的项目?

python - 更改 SHAP 图的纵横比

python - 如何在没有 Apache 和 Nginx 的情况下将所有 HTTP 请求重定向到 ELB 中的 HTTPS

python - 如何在不修改 Python 中的原始列表的情况下反转列表

python - 使用 python 和 pytables 处理大文件

python - 如何从 n 元组中每个元素相同的列表中删除 n 元组?

python - 将日期范围转换为 Pandas 中的时间序列