2017-08-30 15 views
-1

ファイルを読み込んで特定のデータを抽出し、辞書に格納し、最後にそれをmysqlテーブルに挿入するpythonスクリプトがあります。私は、ファイル名に入力したところ、私のコードの最初の行は次のとおりです。複数のファイルでPythonスクリプトを実行する

filename = "examplelogfile" 

テキストファイルであり、後の「ファイル名」と呼ばれています。しかし、私はこのタイプのほぼ1000種類のファイルに対してこのコードを実行しなければなりません。これらのファイルをすべて特定のサーバーに移動しました(同じサーバー上で実行する必要があるため、 mysqlデータベースがある場所)。すべてのファイルで自分のコードを実行する最も簡単な方法は何ですか?

編集:私はこれを試してみましたが、それは(すべての辞書を印刷することになっている)私に任意の出力を与えていない:

import glob 
files = glob.glob('~/Desktop/pythoncode/*logfile') 
for filename in files: 
    rest of code 
    print dict 
+1

'〜'なしでパスを定義するか、 'os.path.expanduser'で使用します。 – sKwa

答えて

2

は、このようなすべてのファイルを取得するためにglobモジュールを試してみてください。

import glob 
path = 'C:/Users/telli/Desktop/Test Shapes/Shapes/Squares' 
filenames = glob.glob(path + '/*.gif') 
for filename in filenames: 
    # Do something 
+0

ファイル拡張子がない場合、ワイルドカード方式が機能しますか?私の質問に見られるように、ファイル名の形式は "somethinglogfile"ですが、拡張子はありません。 –

+0

はい、うまくいきます。 gifを削除するだけです。 –

+0

.endswith()を使用して、ロジックの短いビットで事前に拡張子を無視することができます。編集:または単に上記の答えを使用します。 –

関連する問題