1

我有两个文本文件,每个文件都有数据列。我想知道是否有办法将两个文件组合在一起,以便特定或所有列并排?这可以使用附加来完成吗?

4

2 回答 2

0

我将使用csv 模块来读取这两个文件,将数据按键放入字典中,然后再次使用 csv 模块编写一个包含连接数据的文件。

于 2012-11-13T15:19:12.143 回答
0

假设您的两个文件具有完全相同的行数,您可以执行以下操作:

# column 0 in right file next to column 0 in left file
# column 1 in right file next to column 1 in left file
# column 2 in right file next to column 2 in left file
order = (0, 0), (1, 1), (2, 2)
contents = [] # contains left side file content in idx 0, right side in idx 1
for fname in ("leftfile", "rightfile"):
    with open(fname) as f:
        contents.append(f.readlines()) # read entire file content

separator = " " # what separates the columns?
with open("out", "w") as outfile:
    for row in range(len(contents[0])):
        cl = contents[0][row].strip().split(separator) # columns in left file
        cr = contents[1][row].strip().split(separator) # columns in right file
        outfile.writelines(
                separator.join("%s%s%s" % (cl[l], separator, cr[r])
                    for l, r in order))
        outfile.write("\n")

这会将两个文件(称为leftfileand rightfile)读入内存,去除两个文件中的前导/尾随空格的每一行,然后将它们拆分为给定的separator.
然后重新排列这些列,重新组合在一起并写入输出文件。
您可以通过更改元组来控制每个文件中的列彼此相邻放置的顺序order

于 2012-11-14T06:24:25.610 回答