我必须读取多个文件名,这些文件名将被当作python脚本的输入。但是输入文件的名称可能取决于生成时间。
File1: RM_Sales_Japan_2011201920191124194200.xlsx
File2: RM_Volume_Australia_201120192019154321194200.xlsx
如何在读取文件时容纳这些更改,而不是每次运行脚本时都精确指定文件名?
我尝试过的事情: 我在以前的脚本中使用了下面的方法,因为它只有一个文件具有已知扩展名:
xlsxfile = "*.xlsx"
filelocation = "/user/script/" + xlsxfile
但是对于具有类似扩展名的多个文件,我不确定如何完成定义。
EDIT1:
我试图在将glob与read_excel结合使用时更加清楚。请在下面查看我的示例代码:
import os
import glob
import pandas as pd
os.chdir ('D:\\Users\\RMoharir\\Downloads\\Smart Spend\\Input')
fls=glob.glob("Medical*.*")
df1 = pd.read_excel(fls, parse_cols = 'A:H', skiprows = 10, header = None)
但这给我一个错误:
ValueError: Invalid file path or buffer object type: <class 'list'>
感谢您的帮助。
答案 0 :(得分:2)
如果只需要查找目录中与给定模式匹配的所有文件,则可以使用os
和re
模块。
import os
import re
files = os.listdir()
for file in files:
if re.match(r".*\.xlsx$", file):
print(file)
此简短程序将打印出当前目录中名称以.xslx
结尾的每个文件。如果您需要匹配更复杂的模式,则可能需要阅读Regular Expressions
请注意,os.listdir
带有一个可选的字符串参数,用于查找要查找的路径,如果没有给出,它将在程序运行的目录中查找