-5

このサイトで役立つものをいくつか見つけましたが、入力ファイルが既に投稿されている例とは異なり、効率的な方法で飛躍することができません.

私の入力ファイルは次のようになります。

sample_dude data1 data2 data3 data4
sample_lady data5 data6 data7 data8
sample_dude data9 data10 data11 data12
sample_child data13 data14 data15 data16

すべてのデータ列を含むサンプルごとに個別のファイルを作成したいと考えています。たとえば、1 つのファイルは sample_dude.txt と呼ばれ、次のようになります。

data1 data2 data3 data4
data9 data10 data11 data12

サンプル数は不明ですが、常に 4 つのデータ列だけです。

どんな助けでも大歓迎です。ありがとうございました。

PS: これを python でやろうとしています。

4

3 に答える 3

4

これを行うには、ファイルを開いて各行をループします。コードは書きませんが、アルゴリズムは次のとおりです。

# Open the input file
# Loop through each line of the file
    # Split the line into the file name and the data
    # Open the file name and append the data to the end

書き込み用にファイルを開く前に、すべてのファイルのデータを保存することもできます。複数行のファイルがたくさんある場合、これはより高速です。

于 2012-11-11T22:59:25.570 に答える
0

たとえば、次のようにします。

with open('input.txt') as input:
    for line in input:
        name, data = line.split(' ', 1)

        with open('{0}.txt'.format(name), 'a') as f:
            f.write(data)
于 2012-11-11T22:59:32.557 に答える
0

このようなことを試してみませんか?すべてのファイル名を列のリストに分割マップし、行を作成して各ファイルに書き出します。

with open('someFile.txt') as f:
  out = {}
  for line in f:
    key, data = line.split(' ', 1)        
    if not key in out.keys():
      out[key] = []
    out[key].append(data)

for k, v in out.items():
  with open(k+'.txt', 'w') as f:
    f.writelines(v)
于 2012-11-11T23:01:18.473 に答える