關於檔案路徑作為引數傳遞時的轉義問題

2021-09-18 00:04:45 字數 1177 閱讀 4249

本人剛開始學習python。因為學習了資料庫和gui,所以想用圖形化介面來控制資料庫的操作。
在寫**的過程中使用open(),來開啟檔案時,遇到了檔案路徑的轉義問題。雖然在除錯時

可以用r''來解決,但我想用圖形化介面獲取檔案路徑,再進行讀取。所以勢必要把檔案路徑作為

引數傳遞。

filename = 'e:\大學\程式設計\python\課程資料\homework\test.txt'

f = open(filename)

方法之一:

>>> filename = 'e:\大學\程式設計\python\課程資料\homework\test.txt'

>>> filename = r'\\'.join(filename.split("\\"))

>>> filename

'e:\\\\大學\\\\程式設計\\\\python\\\\課程資料\\\\homework\test.txt'

無法替換特殊的轉義字元

在機緣巧合下,我發現利用檔案對話方塊獲取檔案路徑。

import tkinter as tk

from tkinter import filedialog

root = tk.tk()

root.withdraw()

file_path = filedialog.askopenfilename()

那以此方法獲取的檔案路徑會不會有轉義問題呢?

>>> from tkinter import filedialog

>>> root = tk.tk()

>>> root.withdraw()

『』>>> file_path = filedialog.askopenfilename()

>>> file_path

'e:/大學/程式設計/python/課程資料/homework/test.txt'

>>> open(file_path)

通過filedialog.askopenfilename()獲取的檔案路徑是linux的表示方式,而不是windows的表示方式。

所以就避免了轉義問題。

資料**(

Lua 函式作為引數傳遞時的注意事項

有乙個函式是這樣的 function car setspeed t speed self.speed t speed print self.speed end我準備呼叫 函式的函式 function cardriver tapgas self,callback currentspeed curren...

物件作為方法的引數傳遞

士兵 事物名稱 士兵 soldier 屬性 姓名 name 身高 height 體重 weight 行為 打槍 fire 打 callphone 槍 事物名稱 槍 gun 屬性 彈夾 clip 型號 model 行為 上彈夾 addclip 彈夾 事物名稱 彈夾 clip 屬性 子彈 bullet ...

指標作為引數傳遞的總結

如下 會出現編譯錯誤,使用mystrlen無法計算出char陣列的真實長度 計算字元陣列的長度 size t mystrlen char s 無法計算出陣列的大小 計算字元陣列的長度 size t mystrlenconst const char s 實參可以是常量也可以是陣列 return len...