簡體   English   中英

為什么我的 exe 文件不遵循腳本中的指定路徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM