2017-06-13 12 views
-2

ファイル名がfile00001、.....、file00111、..... file01555などの複数のファイルがあります。私はPythonのインクリメントでそれらを読んでみたい。それを行うための最善の方法は何ですか?最初は作成の時間を増分順に読みましたが、これらのファイルを別のコンピュータに転送すると、ファイルの作成時間と名前が一致しなくなりました。このコードは機能しません。私のコードはこのようなものでした。いくつかのコマンドはpymol、cmdのようなソフトウェア特有のものですが、残りのコードはかなり一般的です。質問が正しく頼まれていない場合は申し訳ありませんが、私はPythonにかなり初心者であり、プログラミングは私の職業ではありません。それは、なぜ私がそれを試しているのか、私の仕事をより効率的に行うのに役立ちます。Pythonでインクリメンタルなファイル名でファイルを読むには?

My code

おかげ Dhiraj

+3

はStackOverflowのへようこそ!これまでに何か試しましたか? StackOverflowは無料のコード作成サービスではなく、あなた自身が最初にあなたの問題を解決しようとしています**(http://meta.stackoverflow.com/questions/261592)。質問を更新して、あなたが既に直面している特定の問題を[**最小限で完全で検証可能な例**](http://stackoverflow.com/help/mcve)で紹介してください。詳細については、[**よくある質問をする方法**](http://stackoverflow.com/help/how-to-ask)を参照し、[**ツアー**](http:// stackoverflow.com/tour) –

+0

あなたのコードをイメージとしてではなくテキストとして、検索エンジンによってコピー/貼り付け可能でインデックス可能にしてください。 –

答えて

2

をグロブについての詳細を読んで、あなたの問題のためにそれを調整する方法を見ることができます。この

import glob 
path = ''#your path 
files = glob.glob(path) 
for name in files: 
    with open(name) as f: 
      for line in f: 
       print(line.split()) 

のようなものを試してみてくださいすぐにファイルに何かをしてから移動したい:

def get_files(): 
    MAX_FILE_NUM = 100 #change 
    fmat = lambda x: '{:05}'.format(x) 

    for i in range(1, MAX_FILE_NUM + 1): 
     path = 'file' + fmat(i) 
     new_file = open(path, 'r') 
     # Do something with the new_file object... 

get_files() 

あなたが関数から一度に一つのファイルを取得することができるようにしたい場合:

def get_files(): 
    MAX_FILE_NUM = 100 #change 
    fmat = lambda x: '{:05}'.format(x) 
    for i in range(1, MAX_FILE_NUM + 1): 
     path = 'file' + fmat(i) 
     new_file = open(path, 'r') 
     yield new_file 

files = get_files() 

print(next(files)) #<file object 1> 
print(next(files)) #<file object 2> 
関連する問題