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)

我正在这样做,这对我来说很好,但这是做这件事的其他最佳方式吗。请提供您的所有回复?

谢谢。

根据您的问题,以下伪代码应该可以使用

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

相关内容

  • 没有找到相关文章

最新更新