Python 使用for循环从文本文件中删除制表符分隔的空格

Python 使用for循环从文本文件中删除制表符分隔的空格,python,loops,split,strip,Python,Loops,Split,Strip,对于我的python类,我正在打开一个.tsv文件,获取15行数据,分为4列,并将其转换为每行的列表。为此,我必须删除每列之间的选项卡 有人建议我在每条线路上使用for循环和loop。这是有道理的,但我不知道如何删除选项卡 有什么帮助吗?要从文件中读取行,并拆分制表符分隔符上的每一行,可以执行以下操作: rows = [] for line in open('file.tsv', 'rb'): rows.append(line.strip().split('\t')) 要从文件中读取行

对于我的python类,我正在打开一个.tsv文件,获取15行数据,分为4列,并将其转换为每行的列表。为此,我必须删除每列之间的选项卡

有人建议我在每条线路上使用for循环和loop。这是有道理的,但我不知道如何删除选项卡


有什么帮助吗?

要从文件中读取行,并拆分制表符分隔符上的每一行,可以执行以下操作:

rows = []
for line in open('file.tsv', 'rb'):
    rows.append(line.strip().split('\t'))

要从文件中读取行,并拆分制表符分隔符上的每一行,可以执行以下操作:

rows = []
for line in open('file.tsv', 'rb'):
    rows.append(line.strip().split('\t'))
看看这本书。斯普利特应该做这项工作

>>> line = 'word1\tword2\tword3'
>>> line.split('\t')
['word1', 'word2', 'word3']
看看这本书。斯普利特应该做这项工作

>>> line = 'word1\tword2\tword3'
>>> line.split('\t')
['word1', 'word2', 'word3']

正确地说,这应该使用另一个答案中提到的,因为这将处理转义分隔符、引用值等

从更一般的意义上讲,这可以通过以下方式实现:

而且,正如评论中所建议的,在某些情况下,a将是一个更好的选择:

rows = (line.split('\t') for line in file)

有关何时正确使用每个选项的讨论,请参阅。

应使用另一个答案中提到的选项,因为这将处理转义分隔符、引用值等

从更一般的意义上讲,这可以通过以下方式实现:

而且,正如评论中所建议的,在某些情况下,a将是一个更好的选择:

rows = (line.split('\t') for line in file)
有关何时使用每个函数的讨论,请参阅。

您应该使用,特别是函数

rows = [row for row in csv.reader(open('yourfile.tsv', 'rb'), delimiter='\t')]
还有一个方言参数,可以用来符合Microsoft Excel的制表符分隔格式。

您应该使用,尤其是函数

rows = [row for row in csv.reader(open('yourfile.tsv', 'rb'), delimiter='\t')]
还有一个方言参数,可以用来符合Microsoft Excel的制表符分隔格式。

我实际上会使用here而不是list comprehension,这样在处理列表时就不会在内存中保存大量列表。不过,这取决于你对结果的处理。我实际上会在这里使用a而不是列表理解,这样你在处理列表时不会在内存中保存一堆列表。不过,这取决于你对结果做了什么。