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