2012-02-10 17 views

Odpowiedz

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) ] 

Funkcja find_csv_filenames() zwraca listę nazw jako ciągi, które znajdują się w katalogu path_to_dir z podanym przyrostkiem (domyślnie „.csv”).

Uzupełnienie

Jak wydrukować nazwy plików:

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

Mam problem z tym, co robię z ten kod próbuje wyświetlić wszystkie treści w katalogu, w którym się znajduje g, csv = csv.reader (open (nazwy plików, 'rb')) i daje mi błąd "zmuszając do unicode: potrzebujesz ciąg lub bufor" możesz mi pomóc tutaj proszę dużo, jeśli możesz to docenić . – mintgreen

39
import os 
import glob 

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

To krótkie rozwiązanie, ale pamiętaj, że jest ono skanowane tylko w bieżącym katalogu (gdzie uruchomiony jest skrypt). Aby zmienić to, użyj 'os.chdir ("/mydir ")', jak tutaj podano: http://stackoverflow.com/questions/3964681/find-all-files-in-directory-withextext-text-in- python – ppasler

+2

@ppasler Hi, Odpowiedź edytowana z twoją sugestią. Również myślę, że teraz jest bardziej pythonic :) –

4

używanie Python OS moduł znaleźć plik CSV w katalogu.

prostym przykładem jest tutaj:

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

musiałem dostać csv pliki, które znajdowały się w podkatalogach, dlatego korzystając z odpowiedzi od tchlpr I zmodyfikowane go do pracy najlepsze dla mojego przypadku użycia:

import os 
import glob 

os.chdir('/path/to/main/dir') 
result = glob.glob('*/**.csv') 
print(result) 
Powiązane problemy