我有一个包含n
csv
个文件的文件夹,它们都被命名为event_1.csv
,event_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.csv
,event_2.csv
,event_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
。谢谢!
答案 0 :(得分:2)
好像你得到了你要求的东西。请在代码中查看此行:
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
现在您需要编写特定的解决方案:)