(申し訳ありませんが、私はまだ、コメントを追加することはできません。)
[次の文が間違っている、後で編集!!!]「davesnittyさんが生成行ループはrows = [[]] * 21
で置き換えることができます。これは空リストのリストを作成するので間違っていますが、空のリストは外部リストのすべての要素で共有される単一の空のリストになります。
マイ+1標準csvモジュールを使用します。しかし、ファイルは常に閉鎖されていなければなりません。また、バグがあります。あなたが結果をここに書き込んだにもかかわらず、ファイルから読み込んだ行。解決策は実際にはありません。基本的には、ファイルから読み込んだ行は、行番号に関連するサブリストに追加する必要があります。行番号は、enumerate(reader)経由で取得する必要があります。ここで、readerはcsv.reader(fin、...)です。
、次のコードを試してみてください、あなたのpuproseのパスを修正[後に追加]:
import csv
import glob
import os
datapath = './data'
resultpath = './result'
if not os.path.isdir(resultpath):
os.makedirs(resultpath)
# Initialize the empty rows. It does not check how many rows are
# in the file.
rows = []
# Read data from the files to the above matrix.
for fname in glob.glob(os.path.join(datapath, '*.data')):
with open(fname, 'rb') as f:
reader = csv.reader(f)
for n, row in enumerate(reader):
if len(rows) < n+1:
rows.append([]) # add another row
rows[n].extend(row) # append the elements from the file
# Write the data from memory to the result file.
fname = os.path.join(resultpath, 'result.csv')
with open(fname, 'wb') as f:
writer = csv.writer(f)
for row in rows:
writer.writerow(row)
これは完全に 'paste'のための仕事です。 –
pythonに貼り付けコマンドがありますか? – Esan
Pythonペーストがありますが、それは私の話ではありません。 –