Python,记住文件的默认路径
我有一个python项目的结构有点像这样Python,记住文件的默认路径,python,file,path,trace,Python,File,Path,Trace,我有一个python项目的结构有点像这样 Project/ src/ main.py include.py trace.py doc/ readme.txt lib/ trace/ treetrace.txt datatrace.txt 在trace.py中,我有一些应该写入Project/trace/using中的文件的代码 with open("path-to-Projects/trace/so
Project/
src/
main.py
include.py
trace.py
doc/
readme.txt
lib/
trace/
treetrace.txt
datatrace.txt
在trace.py中,我有一些应该写入Project/trace/using中的文件的代码
with open("path-to-Projects/trace/somefile.txt") as outfile:
outfile.write("some-trace-data")
我希望这样,如果有人从Project/或Project/src/或此结构中的任何目录运行trace.py,trace.py就会知道Project/trace/的路径,这样跟踪文件就不会写入错误的目录。这可能吗?我相信您的目标是写入一个位置与脚本相关的文件。在Python中,脚本的路径位于变量
\uu文件\uu
中。从中减去文件名部分,然后追加../trace/filename.txt。我是这样做的:
import os
# Get the directory in which this script resides
script_path = os.path.split(__file__)[0]
# Trace file's location is relative to the script
trace_filename = os.path.join(script_path, '..', 'trace', 'out.txt')
print 'Trace file is at: {}'.format(trace_filename)
讨论
os.path.split()。我只对路径(索引0)感兴趣
- 在这段代码之后,
包含您要查找的文件的路径trace\u filename
- Bleh,我的
os.path.join
呼叫错误。我喜欢os.path.dirname
比os.path.split(\uuu file\uuu)[0]
(它们返回相同的值,但是dirname
名称使事情更清楚),但是你的os.path.join
调用是正确的,所以我删除了我的,并对你的进行了升级。我不知道os.path.dirname
。好电话。