问题:我似乎无法解析文本文件中的信息,因为 python 将其读取为完整字符串,而不是单独的单独字符串。每个变量之间的空格不是\t,这就是它不分开的原因。有没有办法让 python 灵活地删除空格并用逗号或\t 代替?
示例数据:
MOR125-1 MOR129-1 0.587
MOR125-1 MOR129-3 0.598
MOR129-1 MOR129-3 0.115
我使用的代码:
with open("Distance_Data_No_Bootstrap_RAW.txt","rb") as f:
reader = csv.reader(f,delimiter="\t")
d=list(reader)
for i in range(3):
print d[i]
输出:
['MOR125-1 MOR129-1 0.587']
['MOR125-1 MOR129-3 0.598']
['MOR129-1 MOR129-3 0.115']
期望的输出:
['MOR125-1', 'MOR129-1', '0.587']
['MOR125-1', 'MOR129-3', '0.598']
['MOR129-1', 'MOR129-3', '0.115']
最佳答案
您可以简单地将分隔符声明为空格,并要求 csv 跳过分隔符后的初始空格。这样,您的分隔符实际上就是正则表达式 ' +'
,即一个或多个空格。
rd = csv.reader(fd, delimiter=' ', skipinitialspace=True)
for row in rd:
print row
['MOR125-1', 'MOR129-1', '0.587']
['MOR125-1', 'MOR129-3', '0.598']
['MOR129-1', 'MOR129-3', '0.115']
关于python - 如何在读取文本文件时删除多个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37729387/