Как найти все файлы в каталоге с расширением .csv в python?
Найти все файлы CSV в каталоге с помощью Python
Ответ 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)
Скопировано из этого блога.