操纵python中的路径

时间:2011-07-12 06:03:39

标签: python path-manipulation

我正在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")

3 个答案:

答案 0 :(得分:2)

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

应该有用。

答案 1 :(得分: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")

答案 2 :(得分: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'