Python 如何在读取文本文件时删除多个空格

Python 如何在读取文本文件时删除多个空格,python,python-2.7,csv,Python,Python 2.7,Csv,问题:我似乎无法解析文本文件中的信息,因为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",

问题:我似乎无法解析文本文件中的信息,因为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']
您可以指示使用空格作为分隔符,并跳过所有多余的空格:

reader = csv.reader(f, delimiter=" ", skipinitialspace=True)
有关可用参数的详细信息,请检查:

方言定界符 用于分隔字段的单字符字符串。它默认为“,”。 方言.skipinitialspace 如果为True,则忽略紧跟在分隔符后面的空白。默认值为False


您可以简单地将分隔符声明为空格,并要求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']

将分隔符更改为空格,并使用.strip()string方法除去任何多余的空格如果将分隔符更改为空格,则字符串中存在的所有单个空格都会变成逗号。此时,它是一个由逗号分隔的字符串和空格组成的列表。如果不是完整的列表,我不确定如何执行.strip()来删除空格