Python:获取给定文件夹中特定文件类型的名称

Python: get the names of specific file types in a given folder

我有一个包含 n csv 个文件的文件夹,它们都命名为 event_1.csvevent_2.csv,一直到 event_n.csv .

我希望能够raw_input他们的文件夹路径然后检索他们的名字,排除文件扩展名

我尝试这样做,但我只打印了文件夹路径,因为其中有 csv 个文件。文件名从不打印,而是我想要的。

这是迄今为止我想出的最好的办法,但它做错了事:

import os
directoryPath=raw_input('Directory for csv files: ')
for i,file in enumerate(os.listdir(directoryPath)):
    if file.endswith(".csv"):
        print os.path.basename(directoryPath)

其中directoryPath=C:\Users\MyName\Desktop\myfolder,其中有三个文件:event_1.csvevent_2.csvevent_3.csv.

我得到的是:

myfolder
myfolder
myfolder

我想要的是:

event_1
event_2
event_3

PS:我希望有多达 100 个文件。因此,我应该能够包括这些文件名更长的情况:

event_10
event_100

编辑

我可以添加什么来确保文件的读取顺序与它们的命名顺序完全相同?这意味着:首先阅读 event_1.csv,然后 event_2.csv,依此类推,直到我到达 event_100.csv。谢谢!

看起来你得到了你所要求的。在您的代码中查看这一行:

print os.path.basename(directoryPath)

它打印 directoryPath

我觉得应该是:

import os
directoryPath=raw_input('Directory for csv files: ')
for i,file in enumerate(os.listdir(directoryPath)):
    if file.endswith(".csv"):
        print os.path.basename(file)

祝你好运!

编辑:

让我们创建一个没有路径和扩展名 (l) 的所有文件名的列表。现在:

for n in sorted(l, key=lambda x: int(x.split('_')[1])):
    print n

现在您需要编写您的具体解决方案:)