Подтвердить что ты не робот

Найти все файлы CSV в каталоге с помощью Python

Как найти все файлы в каталоге с расширением .csv в python?

4b9b3361

Ответ 1

import os
import glob

path = 'c:\\'
extension = 'csv'
os.chdir(path)
result = glob.glob('*.{}'.format(extension))
print(result)

Ответ 2

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

Ответ 3

используйте модуль 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

Ответ 4

Мне пришлось получить файлы csv, которые были в подкаталогах, поэтому, используя ответ от tchlpr, я изменил его, чтобы лучше всего работать для моего использования:

import os
import glob

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

Ответ 5

import os

path = 'C:/Users/Shashank/Desktop/'
os.chdir(path)

for p,n,f in os.walk(os.getcwd()):
    for a in f:
        a = str(a)
        if a.endswith('.csv'):
            print(a)
            print(p)

Это поможет определить путь и этих CSV файлов

Ответ 6

Это решение использует фильтр функций Python. Эта функция создает список элементов, для которых функция возвращает true. В этом случае используемая анонимная функция является частичным совпадением ".csv" для каждого элемента списка файлов каталога, полученного с помощью os.listdir("путь, в котором я хочу искать")

import os

filepath= 'filepath_to_my_CSVs'  # for example: './my_data/'

list(filter(lambda x: '.csv' in x, os.listdir('filepath_to_my_CSVs')))

Ответ 7

Хотя решение, данное thclpr, работает, оно сканирует только непосредственные файлы в каталоге, а не файлы в подкаталогах, если таковые имеются. Хотя это не является обязательным требованием, но на тот случай, если кто-то захочет сканировать подкаталоги, приведенные ниже, это код, который использует os.walk

import os
from glob import glob
PATH = "/home/someuser/projects/someproject"
EXT = "*.csv"
all_csv_files = [file
                 for path, subdir, files in os.walk(PATH)
                 for file in glob(os.path.join(path, EXT))]
print(all_csv_files)

Скопировано из этого блога.