python tab分隔检索列并删除空行

时间:2012-10-20 05:46:25

标签: python tab-delimited

我有一个制表符分隔的文本文件,它由两列组成,如:

Apple123    2
Orange933   2
Banana33334 2

底部可能有空行。我怎么能够: 剥去空行,然后 2.写入仅包含第一列的文件?

我现在的问题是,如果我使用 line.strip(),那么该行包含一个长度为10的列表(例如第一行),而不是2.如果我使用 csv.reader (...,dialect = excel-tab)然后我不能使用strip(),所以我无法摆脱空行。

2 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

with open(infilename) as infile, open(outfilename) as outfile:
    for line in infile:
        line = line.strip()
        if line:
            outfile.write("{}\n".format(line.split("\t")[0]))

答案 1 :(得分:0)

你可以用Python的基本字符串操作(str.split等)来做到这一点:

infile = open("/path/to/myfile.txt")
outfile = open("/path/to/output.txt", "w") # Clears existing file, open for writing

for line in infile:
    if len(line.strip()) == 0:
        # skip blank lines
        continue

    # Get first column, write it to file
    col1 = line.split("\t")[0]
    outfile.write(col1 + "\n")

outfile.close()