我有两个文本文件,每个文件都有数据列。我想知道是否有办法将两个文件组合在一起,以便特定或所有列并排?这可以使用附加来完成吗?
问问题
1519 次
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")
这会将两个文件(称为leftfile
and rightfile
)读入内存,去除两个文件中的前导/尾随空格的每一行,然后将它们拆分为给定的separator
.
然后重新排列这些列,重新组合在一起并写入输出文件。
您可以通过更改元组来控制每个文件中的列彼此相邻放置的顺序order
。
于 2012-11-14T06:24:25.610 回答