2017-01-22 7 views
-1

のための私のループ内のすべての反復のために、私はファイル名として「私の反復の数」を与える必要は、例えば、目標は保存することです:ファイル名の指定方法は?

私はそのライブラリに使用
my first iteration in the first file. 
my second iteration in the second file. 
.... 

私のコードは私に必要な解決策を与えてくれません。実際には、実際のコードでは、各反復後にファイルの名前を入力する必要があります.6〜7回繰り返すと簡単ですが、私は100の反復がある場合、それは意味をなさない:

for line, a in enumerate(Plaintxt_file): 
    #instruction 
    #result 
    fileName = raw_input() 
    if(fileName!='end'): 
     fileName = r'C:\\Users\\My_resul\\Win_My_Scripts\\'+fileName 
     np.save(fileName+'.npy',Result) 
ser.close() 

あなたが私を助けることができれば私は非常に感謝します。

+0

ファイル名にはシーケンスがありますか? – ANVGJSENGRDG

答えて

3

は、行番号からファイル名を作成します。あなたは1を開始したい場合は は、enumerateに開始インデックスを指定します。もちろん

for line, a in enumerate(Plaintxt_file, 1): 

、これはあなたがどこか他0で始まるlineを必要としない前提としています。

0

ネームスキーム「0.npy」、「1.npy」、「n-1.npy」までの100個のブランクファイルの場合は、単純なforループ仕事やる(numpyのための必要はありませんが!):

n = 100 
for i in range(n): 
    open(str(i) + ".npy", 'a').close() 

このループは、n回の反復のために実行され、私は100%わからないファイル名が現在の反復

+1

@roganjoshあまりにも早く午前中にhaha – disposedtrolley

1

に対応して、空のファイルを吐き出す何あなたを問題はありますが、私が知る限り、ファイル名には文字列の書式が必要です。

したがって、繰り返し後に作成されたファイルをそれぞれ100個ずつ作成するとします。あなたのアイデアを与えることを願っ

for line, a in enumerate(): 
    #do work 
    filename = "C:\\SaveDir\\OutputFile{0}.txt".format(line) 
    np.save(filename, Result) 

ニーズに100%正確ではありませんが、これを行うための最も簡単な方法は、おそらく次のようなものを使用することです。ファイル名file_0.npy

for line, a in enumerate(Plaintxt_file): 
    fileName = r'C:\Users\My_resul\Win_My_Scripts\file_{}.npy'.format(line) 
    np.save(fileName, Result) 

このスタート:

+0

@roganjosh私はどのような行になっていたのかよくわからなかった。それが行番号であれば、はい、そうです、私を完全に取り除くことができます。 – Jarak

+0

@roganjosh私たちはそれが何であるかを言うには十分な情報が与えられていません。これは、保存されるべき与えられた行からテキスト情報を保持する文字列かもしれません。 – Jarak

+1

@roganjoshああ、はい、そうです。どういうわけか私は組み込みの列挙型を前に実行していない - 私はそれがカスタム関数だと仮定していた。私はそれに応じて私の答えを更新しました(その時点では、Mikeのものとほとんど同じです)。 – Jarak

0

ファイルの順序が気にせず、ループの複数の実行からのファイルがお互いを上書きしないようにするには、ランダムunique IDsを使用できます。

from uuid import uuid4 
# ...  
for a in Plaintxt_file: 
    fileName = 'C:\\Users\\My_resul\\Win_My_Scripts\\file_{}.npy'.format(uuid4()) 
    np.save(fileName, Result) 

追記: は文字列を使用して一緒にバックスラッシュをエスケープしないでください。 パスに二重バックスラッシュが必要な場合を除き、r"C:\path"または"C:\\path"です。私はWindowsがそれらを好むかどうか分からない。

+0

私は自分のファイルの順序を保持する必要があり、私はそれが組織的な結果を得るために最も重要なものなので、私が得るすべてのファイルを保持したい。 – nani92

関連する問題