对于我的python类,我正在打开.tsv文件并获取15行数据,分为4列,并将其转换为每行的列表。为此,我必须删除每列之间的选项卡。
我被建议使用for循环并遍历每一行。这是有道理的,但我无法弄清楚如何删除标签。
任何帮助?
答案 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 functions。 split()
应该完成这项工作。
>>> line = 'word1\tword2\tword3'
>>> line.split('\t')
['word1', 'word2', 'word3']