2016-07-28 4 views
0

すべてのファイルを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-が、それは私が疑問に提供されるすべての私の要件を満たすされています@

答えて

-1

あなたの質問によると、以下の擬似コードは

import os 

# Read all files from a directory, and read your input argument 
files = os.listdir("your_input_directory_path") 
input_argument = "ABC11" 

# Sort file names by name 
files = sorted(files) 

relevant_files = [] 
for file_name in files: 
    # Your Conditions goes here ........ 

    if file_name.startswith(input_argument): 
     relevant_files.append(file_name) 



if relevant_files: 
    return "Error | Not Found" 
else: 
    return relevant_files 
+0

を動作するはず? – kit

+0

はい、このコードを実行してみてください。要件に応じて若干の変更があるかもしれません。しかし、私はこれがあなたの質問で言及したことに応じて動作すると思います。 – userxxx

+0

@ userxxx-ユーザーがABC1引数を渡すので、ABC1_(whaterver)ファイルのみをチェックする必要があります。 ABC11_1.csvファイルは返さないでください。 – kit

関連する問題