3 回答

TA貢獻1828條經驗 獲得超13個贊
您正在尋找的是相對路徑,長話短說,如果您想在項目文件夾內的“TestFiles”文件夾中創建一個名為“sample.txt”的文件,您可以執行以下操作:
import os
f = open(os.path.join('TestFiles', 'sample1.txt'), 'w')
f.write('test')
f.close()
或者使用更新的pathlib模塊:
from pathlib import Path
f = open(Path('TestFiles', 'sample1.txt'), 'w')
f.write('test')
f.close()
但您需要記住,這取決于您啟動 Python 解釋器的位置(這可能就是您無法在項目文件夾中找到“\TestFiles'sample”的原因,它是在其他地方創建的),以確保一切正常好吧,你可以這樣做:
from pathlib import Path
sample_path = Path(Path(__file__).parent, 'TestFiles', 'sample1.txt')
with open(sample_path, "w") as f:
? ? f.write('test')
通過使用[上下文管理器]{https://book.pythontips.com/en/latest/context_managers.html},您可以避免使用f.close()

TA貢獻1789條經驗 獲得超10個贊
創建文件時,您可以指定絕對文件名或相對文件名。如果文件路徑以“\”(在 Win 上)或“/”開頭,則它將是絕對路徑。因此,在第一種情況下,您指定了絕對路徑,實際上是:
from pathlib import Path
Path('\Testfile\'sample.txt').absolute()
WindowsPath("C:/Testfile'sample.txt")
每當你在 python 中運行一些代碼時,將生成的相對路徑將由你當前的文件夾組成,該文件夾是你啟動 python 解釋器的文件夾,你可以通過以下方式檢查:
import os
os.getcwd()
以及您之后添加的相對路徑,因此如果您指定:
Path('Testfiles\sample.txt').absolute()
WindowsPath('C:/Users/user/Testfiles/sample.txt')
一般來說,我建議您使用pathlib來處理路徑。這使得它更安全并且跨平臺。例如,假設您的憑證位于:
project
src
script.py
testfiles
并且您想要存儲/讀取文件project/testfiles。script.py您可以做的是獲取with的路徑__file__并構建到的路徑project/testfiles
from pathlib import Path
src_path = Path(__file__)
testfiles_path = src_path.parent / 'testfiles'
sample_fname = testfiles_path / 'sample.txt'
with sample_fname.open('w') as f:
f.write('yo')

TA貢獻1788條經驗 獲得超4個贊
當我在 vscode 中運行第一個代碼示例時,我收到一條警告 Anomalous backslash in string: '\T'. String constant might be missing an r prefix.
,當我運行該文件時,它還會創建一個名為\TestFiles'sample.txt
. 它是在.py
文件所在的同一目錄中創建的。
現在,如果你的工作樹是這樣的:
project_folder -testfiles -sample.txt -something.py
那么你可以說:open("testfiles//hello.txt")
我希望你覺得這對你有幫助。
添加回答
舉報