2017-08-02 22 views
0

arg parse module.hereを使用して一度に複数のファイルを開きたいのですが、複数のファイルを開くために1つのfile.helpを開くコードがあります。複数のファイルを読み込むPythonでargを解析する

import argparse 
import csv 
parser = argparse.ArgumentParser() 
parser.add_argument('filename',type=argparse.FileType('r'), help='open a certain file',nargs='*') 
args = parser.parse_args() 
file_name=args.filename 
next(file_name) 
dic=csv.DictReader(file_name,delimiter=',') 
for reading in dic: 
    print(reading) 
+1

あなたは何を試してみましたか?いくつかのループ?いくつかの努力を示す。 – Y0da

+0

私は.txt extension.iを持つ100以上のファイルを持っています。キーワードword year.forを使用してファイルを開くだけです。[lahore_weather_1996_Dec.txt] .iすべてのファイルを繰り返し処理し、it.iniにキーワード1996を含むすべてのファイルを開きます。空白で、それをどうやって行うのか分かりません。 –

+0

メソッドがファイルハンドルを開きます。ファイル名が必要で、フィルタが一致する場合は手動で開きます。 –

答えて

0

質問:複数のファイルを開くために私を助けて。 ...今年のキーワードを使用してファイルを開きたい

ワイルドカードを使用とファイルパスやインスタンスのキーワードパラメータ、:

:もしあなたとフォルダ名の競合キーワードファイルパスからファイル名パートを抽出し、ファイル名と一致させる必要があります。

import argparse, glob, csv 
parser = argparse.ArgumentParser() 
parser.add_argument('filepath', help='Path to File, could have Wildcards', nargs=1) 
parser.add_argument('keyword', help='Keyword in Filepath', nargs=1) 
args = parser.parse_args() 

# Use glob to expand the Wildcards 
# Loop the List of File Path 
for fpath in glob.glob(args.filepath[0]): 

    # Condition True if Keyword in Filepath 
    if fpath.find(args.keyword[0]) >= 0: 
     print('MATCH({})'.format(fpath)) 

     # Open this File an process it 
     with open(fpath) as fh: 
      dic = csv.DictReader(fh, delimiter=',') 
      for reading in dic: 
       print(reading) 

使用:パイソンでテスト

python DictReader.py *.txt 1996 

:3.4.2

+0

おかげで兄弟が私の問題を解決しました –

+0

[私の質問に誰かが答えたときにどうすればいいですか?](http://stackoverflow.com/help/someone-answers) – stovfl

関連する問題