os.path.isfile распознает только некоторые файлы, но не все - PullRequest
3 голосов
/ 19 января 2020

ОС: Windows 10


Если у меня есть скрипт python в C:/Temp/CSV Он работает как надо. Однако, если у меня есть скрипт в отдельной папке, он распознает только один из трех .csv файлов.

import os
search_dir='C:/Temp/CSV'
files1 =os.listdir(search_dir)
files2 = filter(os.path.isfile, files1)
print(files1,'\n')
for f in files2:
    print(f)

Это вывод, если я помещаю скрипт в отдельную папку:

['desktop.ini', 'CsvFile1.csv', 'CsvFile2.csv', 'CsvFile3.csv'] 

desktop.ini
CsvFile1.csv

1 Ответ

2 голосов
/ 19 января 2020

В files1 у вас есть список имен файлов, но путь отсутствует. Таким образом, в files2 = filter(os.path.isfile, files1) вы проверяете файлы в текущем рабочем каталоге. Добавьте путь перед проверкой с помощью os.path.isfile.

files2 = filter(os.path.isfile, [os.path.join(search_dir, filename) for filename in files1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...