我有一个7列和大约8000行的txt文件。 该文件的名称是“Azimuth”
第一行 - Id Xs Xe Ys Ye长度方位角
下面的每一行都是一个独特的测量。 所以这是一个包含8000次测量的txt文件。 数据是制表符分隔的,因此它似乎在文件本身中。
当我用Excel打开它时,它将它转换为列和行没有问题,但是当我尝试用python读取它时,它将整个文本作为一列读取。
我试图运行我发现的代码:
f=open("Azimuth.txt")
lines=f.readlines()
result=[]
for x in lines:
result.append(x.split(' ')[0])
f.close()
print result
当我运行它时,它将整个txt文件打印为一个长行(或列,我不确定)。 我试图将它转换为csv文件,但用逗号分隔整个txt,而不是我所期望的。
任何人都可以帮忙吗? 我需要构建一个代码,该代码依赖于分隔为列和行的文件。我不是程序员,所以我会提到我使用sublime编辑器并使用终端运行脚本(它工作正常,脚本以.py结尾,我使用了#!/ usr / bin / env python命令)
谢谢大家
答案 0 :(得分:4)
使用csv模块,使用tab
作为分隔符:
import csv
with open("Azimuth.txt") as f:
rows = csv.reader(f, delimiter="\t")
for row in rows:
# do whatever
如果您想要列出所有行rows = list(csv.reader(f, delimiter="\t"))
,但您可以使用上面的逻辑一次迭代一行。你也永远不需要调用readlines()
,除非你真的想要一个列表,在python中你可以迭代文件对象,所以如果你要手动解析,你可以:
with open("Azimuth.txt") as f:
rows = [line.split("\t") for line in f]
或逐行:
with open("Azimuth.txt") as f:
for line in f:
row = line.split("\t")
# use row ...