すべてのファイルを1つのディレクトリに読み込みたいです。ディレクトリには、次のファイルが含まれています ABC11:Python:特定の条件でディレクトリ内のすべてのファイルを読み取るにはどうすればいいですか?
ABC11_1.csv
ABC11_3.csv
ABC11_2.csv
ABC13_4.csv
ABC13_1.csv
ABC17_6.csv
ABC17_2.csv
ABC17_4.csv
ABC17_8.csv
私は私のスクリプトを実行している私はのように形式で、コンソール上でこのファイル名を与えたいと思います。
その後、ソート順でABC11拡張子だけを含むすべてのファイルを読みたいと思います。すなわち、最初のABC11_1.csv、ABC11_2.csv、ABC11_3.csvのようなものです。
ユーザがABCアプリケーションのみを提供する場合は、エラーメッセージを表示する必要があります。ユーザーがABC1のみを指定した場合は、これを受け入れる有効なアプリケーションであり、拡張子ABC1のファイルがある場合はそのディレクトリをチェックインし、使用可能であればファイルをソート順に処理します。
プログラム・コード -
from glob import glob
import os
import sys
file_pattern = ''
files_list = list()
arguments = {'ABC', 'PQR', 'XYZ'}
if len(sys.argv[1:2]) is 1:
file_pattern = str(sys.argv[1:2])
else:
print 'run as <python test.py ABC>'
sys.exit(1)
if file_pattern in arguments:
print '<Provide LineName with some Number>'
sys.exit(1)
file_pattern = file_pattern.replace('[','').replace(']','').replace('\'','')
if file_pattern.startswith('ABC',0,3):
files_list = glob(os.path.join('<directory name>', str(file_pattern)+'_*.csv'))
else:
print 'No Such File --> ' + str(file_pattern)+ '\t <Provide appropriate Name>'
sys.exit(1)
if files_list:
for a_file in sorted(files_list):
print a_file
#process file
else:
print 'No Such File --> ' + str(file_pattern)+ '\t <Provide appropriate Name>'
sys.exit(1)
私はそのようにやって、それが仕事の罰金私のためではなく、このようなものを行うには、他の最良の方法ですよ。あなたのすべての回答を提供してください?
ありがとうございました。 userxxx-が、それは私が疑問に提供されるすべての私の要件を満たすされています@
を動作するはず? – kit
はい、このコードを実行してみてください。要件に応じて若干の変更があるかもしれません。しかし、私はこれがあなたの質問で言及したことに応じて動作すると思います。 – userxxx
@ userxxx-ユーザーがABC1引数を渡すので、ABC1_(whaterver)ファイルのみをチェックする必要があります。 ABC11_1.csvファイルは返さないでください。 – kit