Python:读取具有不同分隔符(空格)的文本文件的有效方法

标签 python

我是 Python 新手,我正在尝试找出一种有效的方法来读取如下所示的文本文件:

   345   45678   567        678  78
   789   98733   456        567  67

问题是列之间用空格分隔,但空格的数量不是恒定的。

我想出了这个:

def fileread(filename):
data=[]
with open(filename) as myfile:
    LINES=myfile.read().splitlines()
myfile.close()
for line in LINES:
    whole_line=line.split(' ')
    dataline=[]
    for element in whole_line:
        if(element!=''):
                dataline.append(int(element))
    data.append(dataline)
return data

但我觉得必须有一个更有效的解决方案,这会很有帮助,因为我需要它来读取一堆非常大的文件。

有人可以帮我找一个吗?

谢谢!

最佳答案

您只需几行代码即可实现此目的,无需任何额外的导入。发电机非常适合此类工作。话虽如此,如果您经常使用大型数据集,pandas 值得研究,它可能会改变您的生活。

with open('text.txt') as f:
        data = f.read()

split = [x for x in data.split()]

关于Python:读取具有不同分隔符(空格)的文本文件的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663772/

相关文章:

python - 具体情况不会通过第 8 行 elif :

python - 将 10,000 个 JSON 文件(总共 30GB)插入 MongoDB 的最佳方式

python - 为什么无法安装python 3.4或python3?

Python网络编程项目?

python - 如何在 get 方法中使用值列表?

python - 从 python 脚本中启动 python 脚本作为后台进程

python - 如何从列表中删除 Nan 并扩展到列表列表

python - 生成器在 SymPy 中使用具有常数多项式的 Sum 所需的误差

Python-文件行-回文

python - 卡夫卡消费者 : How to start consuming from the last message in Python