1

それぞれのデータ列を含む 2 つのテキスト ファイルがあります。特定の列またはすべての列が並べて表示されるように、両方のファイルを結合する方法があるかどうか疑問に思っています。これは追加を使用して行うことができますか?

4

2 に答える 2

0

2つのファイルの行数がまったく同じであるとすると、次のようになります。

# 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これにより、両方のファイル(およびと呼ばれる)がメモリに読み込まれrightfile、先頭/末尾の空白の両方のファイルの各行が削除され、指定されたで分割されseparatorます。
次に、列が再配置され、元に戻されて、出力ファイルに書き込まれます。タプル
を変更することにより、各ファイルの列を並べて配置する順序を制御できます。order

于 2012-11-14T06:24:25.610 に答える
0

csv モジュールを使用して両方のファイルを読み取り、データをキーで辞書に入れ、再び csv モジュールを使用して結合されたデータを含むファイルを書き込みます。

于 2012-11-13T15:19:12.143 に答える