如何在单个列表中合并列表值?

时间:2019-03-29 10:59:26

标签: python

我的文件夹中有很多文件。我要选择最新文件。 我也编写了代码,但是它在单独的列表中提供值。

我得到的输出:

['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)

3 个答案:

答案 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函数的更多信息。