os.makedirs()遇到的报错解决


os.makedirs()遇到的报错解决

本文基于Windows 10提出解决办法

先贴出遇到的错误:

---------------------------------------------------------------------------
PermissionError                           Traceback (most recent call last)
<ipython-input-29-273e681a3508> in <module>
      1 import os
      2 
----> 3 os.makedirs(os.path.join('..', 'data'), exist_ok=True)
      4 data_file = os.path.join('..', 'data', 'house_tiny.csv')
      5 with open(data_file, 'w') as f:

~\anaconda3\envs\d2l\lib\os.py in makedirs(name, mode, exist_ok)
    221             return
    222     try:
--> 223         mkdir(name, mode)
    224     except OSError:
    225         # Cannot rely on checking for EEXIST, since the operating system

PermissionError: [WinError 5] 拒绝访问。: '..\\data'

出错原因是写入地址有误

解决办法:

需要将

os.makedirs(os.path.join('..', 'data'), exist_ok=True)

中的 .. 修改为存储的地址即可解决,不过请注意输入形式

os.makedirs(os.path.join('C:\\Users\\user\Desktop\\pytorch', 'data'), exist_ok=True)

python地址的输入不能直接用“\”,否则会报错,如上一句写作

os.makedirs(os.path.join('C:\Users\user\Desktop\pytorch', 'data'), exist_ok=True)

则会出现新的报错:

  File "<ipython-input-30-f3bf8d74c287>", line 3
    os.makedirs(os.path.join('C:\Users\qi\Desktop\pytorch', 'data'), exist_ok=True)
                             ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

正确的方法应该是将“\”换为双斜杠“\”或反斜杠“/”或者在前面加上“r”,保持字符原始值的意思

os.makedirs(os.path.join('C:\\Users\\user\Desktop\\pytorch', 'data'), exist_ok=True)

os.makedirs(os.path.join('C:/Users/user/Desktop/pytorch', 'data'), exist_ok=True)

os.makedirs(os.path.join(r'C:\Users\user\Desktop\pytorch', 'data'), exist_ok=True)

三种均可


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM