我的文件夹中有很多文件。我要选择最新文件。 我也编写了代码,但是它在单独的列表中提供值。
我得到的输出:
['tb_exec_ns_decile_20190129']
['tb_exec_ns_decile_20190229']
['tb_exec_ns_decile_20190329']
预期输出:
['tb_exec_ns_decile_20190129', 'tb_exec_ns_decile_20190229', 'tb_exec_ns_decile_20190329']
代码:
path1 = "D:/Users/SPate233/Downloads/testing/*.csv"
files = glob.glob(path1)
print(files)
for name in files:
new_files = []
new_files = os.path.split(name)[1].split('.')[0]
new_files = new_files.split(',')
print(new_files)
答案 0 :(得分:4)
此处的正确术语是append
而不是merge
,因为您希望将列表中的所有文件名放在一起,创建一个空列表以在其中存储所有文件名:
f_list = [] # an empty list to store the file names
for name in files:
file_name = os.path.split(name)[1].split('.')[0]
f_list.append(file_name.split(',')) # appending the names to the list
print(f_list) # print the list
答案 1 :(得分:1)
您始终可以在python中合并列表,如下例所示:
i functions: Preparing to emulate functions.
Warning: You're using Node.js v10.13.0 but Google Cloud Functions only supports v6.11.5.
i hosting: Serving hosting files from: public
+ hosting: Local server: http://localhost:5000
info: initalised
info: rendering home...
+ functions: app: http://localhost:5001/book-shelf-be347/us-central1/app
info: Worker for app closed due to file changes.
答案 2 :(得分:0)
您的输出不是您想要的输出,因为每次循环运行时,您的列表都被设置为空。如果您想要一个列表来保存所有文件名,则必须从列表中声明它。 for循环:
mylist =[]
for name in files:
mylist.append(file)
print(mylist)
完成此操作后,可以通过os.path.getmtime(path)获取最新文件。 您可以在https://docs.python.org/2/library/os.path.html
中阅读有关getmtime函数的更多信息。