Error with double backslash in Windows path in Python

北战南征 提交于 2019-12-17 20:25:32

问题


I want to work with paths in Windows in Python 3.3, but I have an error:

FileNotFoundError: [Errno 2] No such file or directory: 'E:\\dir\\.project'

The problem is the double backslash. I read the solution using r.

def f(dir_from):
    list_of_directory = os.listdir(dir_from)
    for element in list_of_directory:
        if os.path.isfile(os.path.join(dir_from, element)):
            open(os.path.join(dir_from, element))

f(r'E:\\dir')

I have this error again

FileNotFoundError: [Errno 2] No such file or directory: 'E:\\dir\\.project'

os.path.normpath(path) doesn't solve my problem.

What am I doing wrong?


回答1:


If you are using a raw-string, then you do not escape backslashes:

f(r'E:\dir')

Of course, this problem (and many others like it) can be solved by simply using forwardslashes in paths:

f('E:/dir')



回答2:


Changing '\\' for '/' worked for me. I created a directory named 'a' in C:/ for this example.

>>> (Python interpreter)
>>> import os
>>> os.path.isdir('C:/a/)')
>>> True
>>> os.path.isfile('C:/a/)')
>>> False


来源:https://stackoverflow.com/questions/22567785/error-with-double-backslash-in-windows-path-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!