[英]Why does my exe file not follow a specified path in the script?
所以我做了一個exe文件,它會運行到需要打開和寫入csv文件的地方,故障是:
FileNotFoundError: [Errno 2] 沒有這樣的文件或目錄:'P:\\\\myfile\\\\directory\\\\sheet.csv'
[5520] 無法執行腳本 sheetcsv
該目錄確實存在,並且腳本在調試模式或從 python shell 時執行,它僅在 exe 格式時失敗。
我還注意到它在目錄之間打印\\\\
,這不是它在我的腳本中的樣子。
我的一個理論是 exe 文件無法寫入共享網絡驅動器。
我在 Windows 10、python3.7 上運行
我的代碼是:
with open('P:\my\directory\sheet.csv', 'a', newline='') as csvfile:
您應該將其更改為:
with open('P:/my/directory/sheet.csv', 'a', newline='') as csvfile:
注意從\\
到/
的變化
Python 字符串將反斜杠視為轉義字符。 你有很多選擇:
用/
替換\\
使用\\\\
使用原始文字,即: r"P:\\my\\directory\\sheet.csv"
使用os.path.sep
使用os.path.join
等等..
在您的情況下,我會說最簡單的方法是將\\
替換為/
作為我給您的示例。
僅作為示例,請嘗試以下操作:
print("mydir\nothing\table.csv")
輸出:
P:\mydir
othing able
你會看到輸出不是你最初期望的,因為\\n
和\\t
已被轉換為特殊字符:)
通常,除非您確定發生了什么,否則請避免在字符串中使用反斜杠\\
。 以/
分隔的目錄將被正確處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.