2012-02-10 138 views

回答

19
from os import listdir 

def find_csv_filenames(path_to_dir, suffix=".csv"): 
    filenames = listdir(path_to_dir) 
    return [ filename for filename in filenames if filename.endswith(suffix) ] 

find_csv_filenames()返回的文件名字符串,駐留在目錄path_to_dir具有給定後綴(默認情況下,名爲「.csv」)的列表的功能。

附錄

如何打印文件名:

filenames = find_csv_filenames("my/directory") 
for name in filenames: 
    print name 
+0

我有一個問題,即時消息與我在做什麼這個代碼即時通訊試圖顯示目錄usin中的所有內容g,csv = csv.reader(open(filenames,'rb')),它給我一個錯誤「強制unicode:需要字符串或緩衝區」,你可以幫我一下,謝謝你,如果我可以補充它。 – mintgreen 2012-02-14 17:15:27

39
import os 
import glob 

path = 'c:\\' 
extension = 'csv' 
os.chdir(path) 
result = [i for i in glob.glob('*.{}'.format(extension))] 
print(result) 
+0

這是一個簡短的解決方案,但請注意,這隻能掃描當前目錄(腳本運行的地方)。改變使用'os.chdir(「/ mydir」)',如下所示:http://stackoverflow.com/questions/3964681/find-all-files-in-directory-with-extension-txt-in- python – ppasler 2016-12-02 13:00:30

+2

@ppasler嗨,回答編輯與您的消化。另外我覺得現在它更pythonic :) – 2016-12-02 15:06:37

4

使用Python OS模塊找到一個目錄csv文件。

簡單的例子是在這裏:

import os 

# This is the path where you want to search 
path = r'd:' 

# this is the extension you want to detect 
extension = '.csv' 

for root, dirs_list, files_list in os.walk(path): 
    for file_name in files_list: 
     if os.path.splitext(file_name)[-1] == extension: 
      file_name_path = os.path.join(root, file_name) 
      print file_name 
      print file_name_path # This is the full path of the filter file 
0

我不得不csv文件是在子目錄,因此,使用響應從tchlpr我修改了它的工作最適合我的使用情況:

import os 
import glob 

os.chdir('/path/to/main/dir') 
result = glob.glob('*/**.csv') 
print(result) 
相關問題