关于ZAKER 融媒体解决方案 合作 加入

Python, 记住文件的默认路径

CocoaChina 11-23

我有一个结构像这样的python项目

Project/ src/ main.py include.py trace.py doc/ readme.txt lib/ trace/ treetrace.txt datatrace.txt

在 trace.py 里面 , 我有代码应该使用以下命令写入 Project / trace / 中的文件

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 中 , 脚本的路径在变量 __file__ 中 . 从那里 , 减去文件名部分 , 然后附加 ../trace/filename.txt. 这是我的方法:

import os# Get the directory in which this script residesscript_path = os.path.split ( __file__ ) [ 0 ] # Trace file's location is relative to the scripttrace_filename = os.path.join ( script_path, '..', 'trace', 'out.txt' ) print 'Trace file is at: {}'.format ( trace_filename )

讨论区

> os.path.split ( ) 函数将脚本的路径名分为几部分:路径和文件名 . 我只对路径 ( 索引 0 ) 感兴趣 .

> 在这段代码之后 ,trace_filename 包含您要查找的文件的路径 .

以上内容由"CocoaChina"上传发布 查看原文
相关标签 python路径文件