python相對路徑怎麼寫
A. python讀取excel文件路徑怎麼寫
如果你的excel文件跟py文件在一個文件夾,那就直接寫excel文件的名字,不然就要寫路徑名了,這里有兩種方法,一種是絕對路徑,一種是相對路徑
B. python中的絕對路徑和相對路徑均如何理解呢
Python中的絕對路徑和其他語言並無區別。
Python中的相對路徑則有所不同,一般語言的相對路徑的父目錄指的是文件所在目錄,而Python的相對路徑的父目錄指的是當前腳本執行目錄。舉個簡單的例子:我有一個放在/xyz/bin目錄下的腳本 test.py。那麼他的絕對路徑就是/xyz/bin,如果你在你的test腳本中使用了相對路徑的話,那麼test.py中的相對路徑是根據腳本執行時你的當前目錄所決定的。比如,如果你在/xyz/bin目錄下還有一個文件test.txt,這是test.py中所使用的文件,那麼在/xyz/bin目錄下執行./test.py是沒有問題的。但是如果你在其他目錄執行python /xyz/bin/test.py,如果其他目錄沒有test.txt文件,那麼必然會報錯。因為此時相對路徑的父目錄已經不是/xyz/bin了,自然找不到/xyz/bin/test.txt。
C. python相對路徑, 這個路徑應該怎麼寫,為什麼報錯說找不到
應該是因為你的路徑問題,不止要同文件夾,也要輸入路徑
D. python相對路徑怎麼寫
相對路徑
同級目錄 -----------直接調用文件名
with open(pi.txt') as file_object:
contents=file_object.read()
print(contents.rstrip())
下一級目錄 ----------- 調用程序文件以下的路徑
with open('next/pi.txt') as file_object:
contents=file_object.read()
print(contents.rstrip())
上級目錄-----------…/接文件名或路徑
with open('../pi_digits.txt') as file_object:
contents=file_object.read()
print(contents.rstrip())
E. mac打包python + pyinstaller,解決相對路徑問題
命令: pip pyinstaller
命令: pyinstaller --windowed --onefile --clean --noconfirm target.py
註:target.py 為目標腳本文件
問題: 如果,打包使用絕對路徑會出現每更換一台電腦,而且腳本中需要調用資源文 件,就要重新進行配置路徑;
解決方法:獲取腳本運行的當前路徑,在用於其他資源調取的路徑
命令:import os, sys
path = os.path.dirname(os.path.dirname(os.path.realpath(sys.executable)))
path 獲取的是腳本運行當前路徑的上一級路徑;
後面調用文件路徑根據文件夾和腳本的層級關系,隨意更換path
F. python讀寫文件
讀文件
1)使用open()方法打開文件,返回一個文件對象
原型:open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
舉例:f = open('test.txt', 'r')
test.txt表示文件路徑(包含文件名,這個file參數可以是絕對或者相對路徑)
r表示是讀文本文件,rb是讀二進制文本文件。(這個mode參數默認值就是r)
2)使用close()方法關閉文件
f.close()
打開後的文件必須關閉,因為文件對象會佔用系統資源,系統打開文件數量也就有限了
3)打開文件時的異常處理
f=open('test.txt', 'r')
f.read()
f.close()
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
文件讀寫時都有可能產生異常IOError(比如文件不存在),這樣其後面的f.read(),f.close()就不會調用。為保證無論是否異常都可以關閉文件,一般使用try ... finally來處理:
try:
f = open('test.txt', 'r')
f.read()
finally:
if f:
f.close()
但這種寫法過於繁瑣,所以Python引入了with語句來自動調用close()方法:
with open('test.txt', 'r') as f:
f.read()
4)讀文件 - read()、readline() 和 readlines()
read() 一次讀取整個文件,它通常用於將文件內容放到一個字元串變數中。如果文件過大,內存不夠,可以通過反復調用read(size)方法,每次最多讀取size個位元組的內容。
readline() 一次讀取文件中一行內容,可反復調用
readlines() 一次讀取所有內容並按行返回列表,該列表可以由for ... in ... 結構再進一步處理。
特別注意:
這三種方法是把每行末尾的'\n'也讀進來了,如有需要就得我們手動去掉'\n'
with open('test.txt', 'r') as f:
list = f.readlines()
for i in range(0, len(list)):
list[i] = list[i].rstrip('\n')
寫文件
1)寫文件和讀文件是一樣的,唯一區別是open文件時,傳入標識符不同,即'w'或者'wb'表示寫文本文件或寫二進制文件
f = open('test.txt', 'w')
f = open('test.txt', 'wb')
f = open('test.txt', 'a')
f.close()
特別注意:
1. 如果沒有這個文件,會自動創建一個新文件;如果有,就會先把原文件的內容清空再寫入;若不想清空原來的內容而是直接在後面追加新的內容,就用'a'這個模式
2. 寫文件,操作系統往往不會立刻把數據寫入磁碟,而是放到內存緩存起來,空閑的時候再慢慢寫入。只有調用close()方法時,操作系統才保證把沒有寫入的數據全部寫入磁碟。忘記調用close()的後果是數據可能只寫了一部分到磁碟,剩下的丟失了。
2)寫文件 - write()、writelines()
write()方法和read()、readline()方法對應,是將字元串寫入到文件中。
writelines()方法和readlines()方法對應,也是針對 列表 的操作。它接收一個 字元串列表 作為參數,將他們寫入到文件中。
特別注意:
換行符不會自動的加入,需要顯式的加入換行符。
f = open('test.txt', 'w')
f.writelines(["111\n", "222\n", "333\n"])
補充說明:
1)對於非默認編碼(utf-8)的文件,需要open時添加encording參數,選擇對應的編碼方式
2)r+, w+, a+,可讀可寫
3)seek()方法,移動文件指針
seek(offset[, whence]) ,offset是相對於某個位置的偏移量。位置由whence決定,默認whence=0,從開頭起;whence=1,從當前位置算起;whence=2相對於文件末尾移動,通常offset取負值。
G. Python3 & 如何在Python中寫文件路徑
Python中文件路徑共分為兩種:絕對路徑和相對路徑
1、絕對路徑就是文件的真正存在的路徑,是指從硬碟的根目錄(盤符)開始,進行一級級目錄指向文件。
2、 相對路徑是以當前文件為基準進行一級級目錄指向被引用的資源文件。
其中大小寫不影響windows定位到文件
python 文件路徑書寫方式有兩種:
方法一:使用轉義字元
filePath = 'E:\Temp\test'
方法二:使用r聲明字元串
filePath = r'E:\Temp\test'
上述寫法中"\ 「為字元串中的特殊字元,加上r後變為原始字元串,則不會對字元串中的」\t"、"\r" 進行字元串轉義。
H. python讀取文件相對路徑
比如你在和當前文件並列的"game"文件夾下有"score.txt"文件,那麼相對路徑表示為:
"game/score.txt"
就是和這個py文件並列的文件夾前面不需要加"/",後面的都需要加,別忘了加上後綴。
例:
with open("game/score.txt", mode = "a+", encoding = "utf-8") as f:
score = f.readline()
I. python 相對路徑問題,新手。謝謝。
使用os模塊來獲取當前文件的絕對路徑和拼接路徑。
importos
BASE_DIR=os.path.dirname(__file__)#獲取當前文件夾的絕對路徑
printBASE_DIR
file_path=os.path.join(BASE_DIR,'Test_Data')#獲取當前文件夾內的Test_Data文件
Test_Data=open(file_path,"r")#讀取文件
forlineinTest_Data:
printline
Test_Data.close()#關閉文件
J. python 獲取文件夾路徑問題
#encoding:utf-8
importos
printos.path.abspath("test")
使用os.path.abspath方法可以輸出文件夾的絕對路徑。
參數裡面要寫相對路徑,比如腳本和文件夾在同一路徑,就直接寫名字即可。如果文件夾在上一個目錄,就寫成"../test"。
其實從方法名也能看出來,是一個相對路徑轉絕對路徑的方法。