2016-04-05 4 views
0

次のコードを使用して、ファイルを数百の異なるファイルに分割して、それぞれ16行のファイルを作成します。今度は、このコードを何度も実行して、入力ファイルを読み込み、現在のフォルダだけでなく、別々のフォルダに出力を書きたいと思っています。今私は、ようなコードを実行します。別のフォルダにあるシェルから出力を書き出すためにPythonコードを変更する

python split.py < input.txt 

しかし、私のような何かやりたい:

for i in {1..10}; do python split.py < folder${i}/input.txt ; done 

を、対応するフォルダにそれらのファイルを書き込みます。私は別のフォルダから入力ファイルを読むことができますが、問題は出力ファイルがコマンドを実行するディレクトリに書き込まれ上書きされることです。私はここでこれを修正する方法がわからないwith open("ratio-{}.txt".format(i), 'w') as File:コードです。

#!/usr/bin/env python 

from __future__ import print_function 
import sys, os 
import itertools 

def grouper(iterable, n, fillvalue=None): 
    "Collect data into fixed-length chunks or blocks" 
    args = [iter(iterable)] * n 
    return itertools.izip_longest(fillvalue=fillvalue, *args) 

def convNotation(x): 
    if isinstance(x, float): 
     s = str(x) 
    else: 
     s = x 
    return s.replace('e', "*^") 

Values = (Line.strip() for Line in sys.stdin) 
Data = list(grouper(Values, 16, 0.0)) 

for i in range(len(Data)): 
    Conf = Data[i] 
    with open("ratio-{}.txt".format(i), 'w') as File: 
     for x in Conf: 
      print(x, file=File) 
+0

入力の読み取りを処理するコードを含めることはできますか? – snakecharmerb

+0

このコードは入力の読み取りを処理します。私がする必要があるのは次のとおりです:python split.py user3389597

+0

多分、http://stackoverflow.com/questions/15260888/python-stdin-filenameを見てください – snakecharmerb

答えて

0

はあなたが私はあなたが* .txt形式と同じディレクトリにあるすべての入力を持っていると仮定しています

f = open('output.txt','w') 
print >>f, "output text" 
0

を使用することができます。

は、ここに私の短いコードです。 新しい順次ディレクトリを作成し、そこに出力を配置する必要があります。 Pythonコードを変更する代わりに、シェルスクリプト内でコードを実行することができます。

  • 考えられるのは、出力ファイルのシーケンスを割り当てることです。
  • 新しい順次ディレクトリを作成します。
  • 出力をこれらのディレクトリに移動します。

擬似コードは次のようなものに見えるでしょう:

for filename in /Directory_to_input/*.txt; do 
    for ((i=0; i<=10; i++)); do 
      mkdir ./myfolder$i 
      python split.py < input.txt 
    done 
    for ((j=0; j<=10; j++)); do 
      mv "output$j.txt" myfolder$j/ 
    done 
done 
0

[OK]を。私は今それを得たと思う。私はこれを行うことができます:

for i in {9..13}; do (cd t${i}/m0/ && python /Users/hunululu/Projects/codes/convert-to-math.py < q1f.txt); done 

ありがとうございます。

関連する問題