我编写了一个使用get_latest_file
从文件夹中获取最新文件的函数。看起来像这样:
def get_latest_file(path, *paths):
这个名为path
的变量只是文件所在的路径,而*paths
是实际文件本身。我已经设定:
file = get_latest_file(path, '*000.xls')
我想将file
变成一个数据框。我该怎么办?
我尝试使用pd.DataFrame(file)
,也尝试做pd.read_excel
:
import pandas as pd
from datetime import datetime
import glob
import os
def get_latest_file(path, *paths):
fullpath = os.path.join(path, *paths)
list_of_files = glob.iglob(fullpath)
if not list_of_files:
return None
latest_file = max(list_of_files, key = os.path.getctime)
_, filename = os.path.split(latest_file)
return filename
path = r'\\filepath'
file = get_latest_file(path, '*000.xls')
print (file)
df = pd.DataFrame(file)
print(df)
注释
上面代码中的 filepath
不是实际路径,000.xls
不是实际文件名
答案 0 :(得分:0)
不确定我是否理解您的问题,可能必须将功能定义中的*paths
解释为通配符(我认为是您的意图),而不是传递可变数量的位置参数。参见例如https://pythontips.com/2013/08/04/args-and-kwargs-in-python-explained/
请注意,*args
只是约定俗成的,它是执行魔术的星号。因此,在您的情况下,*paths
被解释为可变数量的参数,可以使用paths[0]
,paths[1]
等在函数主体中访问
希望这会有所帮助。