如何在内置的open()函数中输入文件路径?

时间:2012-12-09 16:25:02

标签: python file-io input

我已经阅读了文档,但它没有告诉我们如何在open()函数中输入文件路径。

如果文件路径是:

/opt/myapp/report/sample.txt 

$MYPATH/report/sample.txt(其中$ MYPATH = / opt / myapp)

以这种方式写声明是否可以:

f = open('/opt/myapp/report/sample.txt', "r")

f = open('$MYPATH/report/sample.txt', "r")

2 个答案:

答案 0 :(得分:5)

您要在此处执行的操作是在路径中展开环境变量,可以使用os.path.expandvars()来完成:

  

返回扩展了环境变量的参数。形式为$ name或$ {name}的子字符串将替换为值   环境变量名称。格式错误的变量名称和引用   不存在的变量保持不变。

     

在Windows上,除了$ name和$ {name}之外,还支持%name%expansions。

E.g:

with open(os.path.expandvars(path), "r") as f:
    ...

请注意我在这里使用with语句,这是打开文件的最佳方式,因为它确保它们正确关闭,即使有异常,并且读取得很好。

答案 1 :(得分:1)

您可以使用os.environ获取环境变量的值,并os.path.join将其与report/sample.txt部分结合使用:

os.path.join(os.environ['MYPATH'], 'report/sample.txt')

绝对路径也可以。