2015-11-15 74 views
1

我有一个包含ncsv文件的文件夹,它们都被命名为event_1.csvevent_2.csv,一路到event_n.csv的Python:获取特定文件类型的名称给定文件夹

我希望能够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。谢谢!

回答

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 

现在,你需要写你的具体的解决方案:)

+0

谢谢!只需检查我的编辑! – FaCoffee

+0

您可以将文件的列表,进行排序要排序的部分上添加排序功能。请注意,字符串的排序方式与数字不同(即'100'小于'3')。 –

+0

我添加了这样的排序的例子。 –

相关问题