2013-02-26 2 views
3

Итак, я пытаюсь включить os.path.isfile или os.path.exists в мой код с успехом в поиске определенных файлов (pdf, png) при поиске имен файлов, которые начните с буквы.Python: os.path.isfile не распознает файлы, начинающиеся с цифры

Стандарт именования файлов, который я использую (и не могу изменить из-за пользователя), начинается с числа и впоследствии не может быть найден с использованием того же метода. Есть ли способ, который я могу сделать, чтобы эти файлы можно было обнаружить на .isfile или .exists?

Файлы, которые я ищу, являются .txt-файлами.

os.path.isfile("D:\Users\spx9gs\Project Work\Data\21022013AA.txt") 

    os.path.isfile("D:\Users\spx9gs\Project Work\Data\AA21022013.txt") 

Возвращает:

Ложные

Правда

+0

Это определенно работает для меня. Оба 'os.path.exists' и' os.path.isfile' распознают файлы, начинающиеся с числа. –

+0

Нет, 'isfile()' работает для меня по именам файлов, которые начинаются с числа. Платформа и тестовые чеки, пожалуйста? –

+0

'os.path.isfile()' отлично работает для меня в файле с именем 01.txt – Junuxx

ответ

14

Вы должны использовать сырые строки, или сбежать от обратной косой черты. В имени файла:

"D:\Users\spx9gs\Project Work\Data\21022013AA.txt" 

\210 будет интерпретироваться как восьмеричное код побега, так что вы не получите правильное имя файла.

Любой из них будет работать:

r"D:\Users\spx9gs\Project Work\Data\21022013AA.txt" 
"D:\\Users\\spx9gs\\Project Work\\Data\\21022013AA.txt" 
+6

Или, третий вариант: вы можете использовать косую черту как разделитель путей. –

Смежные вопросы