У меня есть набор файлов CSV, которые я хочу прочитать из пути Windows. Мой код таков:
directory = os.listdir(r'C:\Users\User\Documents\etc...')
for files in directory:
print(files)
dataset = pd.read_csv(files, header = None)
trainSet = dataset.values.tolist()
editedSet = dataset.values.tolist()
Проблема в том, что я получаю сообщение об ошибке No such file or directory: "filename"
, хотя файлы, конечно, существуют в каталоге. Решения, которые я нашел, предназначены для простых текстовых файлов, в то время как у меня есть CSV. Любое предложение о том, что я делаю неправильно?
Спасибо
os.listdir
возвращает список файлов внутри каталога relative
во входной путь
Вам нужно присоединиться к нему с входным путем, чтобы фактически вызвать файл
base_dir = r'C:\Users\User\Documents\etc...'
directory = os.listdir(base_dir)
for files in directory:
print(files)
path = os.path.join(base_dir, files)
print(path)
dataset = pd.read_csv(path, header = None)
trainSet = dataset.values.tolist()
editedSet = dataset.values.tolist()
Проблема в том, что вы указываете только имена файлов в качестве аргумента. Вместо этого вы должны использовать «путь».
Есть много способов решить эту проблему. Современный подход заключается в использовании pathlib вместо os
для управления файлами.
Это решение с pathlib
.
from pathlib import Path
root_path = Path(r'C:\Users\User\Documents\etc...')
file_paths = root_path.glob('*.csv')
files = [root_path.joinpath(file_path) for file_path in file_paths]
for file in files:
print(file)
dataset = pd.read_csv(file, header = None)
trainSet = dataset.values.tolist()
editedSet = dataset.values.tolist()