回覆列表
-
1 # 使用者57733767485
-
2 # IT老友
在沒有指明絕對路徑時,檔案預設存在程式的當前目錄。
那麼,程式的當前目錄是哪個?
import os
os.getcmd()
os.getcmd()就是程式的當前目錄。
在指明絕對路徑時,請不要忽略轉義。
以下三種都是正確的
open("d:\\record.txt","w")
open("d:/record.txt","w")
open(r"d:\record.txt","w")
以下錯誤,因為\是跳脫字元,
open("d:\record.txt","w")
個人相對更喜歡codecs.open(),因為可以指定字元編碼。
import codecs
codecs.open("d:\\record.txt",mode="w",encoding="utf-8")
網站上是這樣講的:然而我執行的時候並沒有報錯:(如下圖)運行了好幾次,依然沒有報錯,於是決定到菜鳥網站自帶的Python線上工具裡試一下,成功的重現了例子裡的情形:查了一下open()命令,是這樣的:f=open("/tmp/hello","w")
#open(路徑+檔名,讀寫模式)#讀寫模式:r只讀,r+讀寫,w新建(會覆蓋原有檔案),a追加,b二進位制檔案.常用模式如:"rb","wb","r+b"等等
讀寫模式的型別有:
rU 或 Ua 以讀方式開啟, 同時提供通用換行符支援 (PEP 278)w 以寫方式開啟,a 以追加模式開啟 (從 EOF 開始, 必要時建立新檔案)r+ 以讀寫模式開啟w+ 以讀寫模式開啟 (參見 w )a+ 以讀寫模式開啟 (參見 a )rb 以二進位制讀模式開啟wb 以二進位制寫模式開啟 (參見 w )ab 以二進位制追加模式開啟 (參見 a )rb+ 以二進位制讀寫模式開啟 (參見 r+ )wb+ 以二進位制讀寫模式開啟 (參見 w+ )ab+ 以二進位制讀寫模式開啟 (參見 a+ )
原因與解決:原因應該是我在自己的電腦裡有新建檔案的許可權,而我無法在別人的伺服器上新建檔案,所以我的程式在自己電腦上不丟擲異常。如果想模擬異常,將fh = open("testfile", "w")換成fh = open("testfile", "r")即可。找到新建檔案的預設儲存路徑:於是猜測應該新建了一個testfile的檔案,然而在/Users/(username_for_mac)/ 目錄下並沒有找到這個檔案,於是只好在這個目錄下用查詢的命令來找到它:find ./ -name testfile最後終於成功的找到了它的預設儲存路徑:.//Users/(username_for_mac)/PycharmProjects/HelloPython/com/ping/test/hello/testfile