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

时间:2011-03-21 00:36:52

标签: python loops split strip

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

我被建议使用for循环并遍历每一行。这是有道理的,但我无法弄清楚如何删除标签。

任何帮助?

4 个答案:

答案 0 :(得分:4)

正确地说,这应该使用Python CSV module(如另一个答案中所述)来完成,因为这将处理转义分隔符,引用值等。

从更一般的意义上讲,这可以通过list comprehension

来完成
rows = [line.split('\t') for line in file]

而且,正如评论中所建议的,在某些情况下,generator expression会是更好的选择:

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

有关何时使用每个的详细讨论,请参阅Generator Expressions vs. List Comprehensions

答案 1 :(得分:3)

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

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

答案 2 :(得分:3)

您应该使用Python's stdlib csv module,尤其是csv.reader功能。

rows = [row for row in csv.reader(open('yourfile.tsv', 'rb'), delimiter='\t')]

还有一个dialect参数可以使excel-tab符合Microsoft Excel的制表符分隔格式。

答案 3 :(得分:1)

查看built-in string functionssplit()应该完成这项工作。

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