1

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

Apple123    2
Orange933   2
Banana33334 2

底部可能有空行。我该如何: 1. 去除空行,以及 2. 写入仅包含第一列的文件?

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

4

2 回答 2

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]))
于 2012-10-20T06:59:56.503 回答
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()
于 2012-10-20T05:56:04.313 回答