1

我正在 Windows 中编写一个 python 脚本 2.5,CurrentDir = C:\users\spring\projects\sw\demo\753\ver1.1\011\rev120\source我的文件是test.py. 从这个路径我想访问这个路径中的文件:C:\users\spring\projects\sw\demo\753\ver1.1\011\rev120\Common\

我尝试使用os.path.join但它不起作用,我从文档中了解原因。那么什么是最好的pythonic解决方案呢?

currentdir = os.getcwd()    
config_file_path =  os.path.join(currentdir,"\\..\\Common")
4

3 回答 3

2
from os.path import dirname, join
join(dirname(dirname(__file__)), 'Common')

应该管用。

于 2011-07-12T06:08:26.377 回答
2

使用 可以解决您的问题os.path.join,但是您没有正确使用它。

currentdir = os.getcwd()    
config_file_path =  os.path.join(currentdir,"\\..\\Common")

"\\..\\Common"不是相对路径,因为它以\.

您需要加入..\\Common,这是一个相对路径。

请注意,这os.path.join不是一个简单的字符串连接函数,您不需要在中间插入反斜杠。

所以固定的代码是:

config_file_path =  os.path.join(currentdir,"..\\Common")

或者,或者:

config_file_path =  os.path.join(currentdir, "..", "Common")
于 2011-07-12T06:57:23.170 回答
0

尝试这个:

joined = os.path.join('C:\\users\\spring\\projects\\sw\\demo\\753\\ver1.1\\011\\rev120\\source', '..\\Common\\')
# 'C:\\users\\spring\\projects\\sw\\demo\\753\\ver1.1\\011\\rev120\\source\\..\\Common\\'
canonical = os.path.realpath(joined)
# 'C:\\users\\spring\\projects\\sw\\demo\\753\\ver1.1\\011\\rev120\\Common'
于 2011-07-12T06:09:37.630 回答