我有脚本调用其他脚本文件,但我需要获取当前在该进程中运行的文件的文件路径.
例如,假设我有三个文件.使用execfile:
script_1.py电话script_2.py.script_2.py打电话script_3.py.我怎样才能获得的文件名和路径script_3.py,从内部代码script_3.py,而无需从传递这些信息作为参数script_2.py?
(执行os.getcwd()返回原始起始脚本的文件路径而不是当前文件的.)
假设你有一个包含的模块
myfile = open('test.txt', 'r')
Run Code Online (Sandbox Code Playgroud)
'test.txt'文件位于同一个文件夹中.如果您将运行该模块,该文件将成功打开.现在假设您从另一个文件夹中导入该模块.不会在与该代码所在的模块相同的文件夹中搜索该文件.那么如何让模块首先在同一个文件夹中搜索相对路径的文件呢?使用" __file__"或" os.getcwd()" 有各种解决方案,但我希望有一种更简洁的方法,就像传递给open()或file()的字符串中的相同特殊字符一样.
我的书说:
在您的计算机上运行的每个程序都有一个当前工作目录或 cwd。任何不以根文件夹开头的文件名或路径都假定在当前工作目录下
因为我在 OSX 上,所以我的根文件夹是 /。当我在os.getcwd()Python shell 中输入时,我得到/Users/apple/Documents. 为什么我的 cwd 中出现 Documents 文件夹?是说 Python 正在使用 Documents 文件夹吗?没有任何以/( 根文件夹 )开头的指向 Python 的路径吗?另外,每个程序都有不同的 cwd 吗?