2016-07-28 84 views
0

我想讀取一個目錄中的所有文件。目錄中包含下列文件: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擴展名的文件。即如此的第一個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) 

我在做這樣的,它的工作的罰款,我卻是其他最好的方式做到這一點的東西。請提供您的答覆?

謝謝。

回答

-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

@ userxxx-是它滿足我的所有要求,我在這個問題提供? – kit

+0

是的,嘗試運行此代碼..根據您的要求可能會有一些小的變化。但我想這可以根據你在提問 – userxxx

+0

@ userxxx提到的任何內容來工作。如果用戶給ABC1參數,所以它應該只檢查ABC1_(whaterver)文件。它不應該返回ABC11_1.csv文件。 – kit

相關問題