如何将expanduser和exists模块一起使用

时间:2011-06-03 13:53:29

标签: python module

这是第一个代码

    user = os.path.expanduser('~\AppData\Local\Temp')
    os.path.exists(user,'\whatever.txt')

现在的问题是,当我运行它时说:

  

追踪(最近一次呼叫最后一次):

     

文件“pyshell#7”,第1行,在模块
中   os.path.exists(用户, '\ whatever.txt')

     

TypeError:exists()正好为1   论证(给出2)

如何解决问题?

1 个答案:

答案 0 :(得分:4)

使用os.path.join将两个路径片段连接在一起:

os.path.exists(os.path.join(user,'whatever.txt'))

请注意r'\whatever.txt'是绝对路径,所以 os.path.join(user,r'\whatever.txt')将返回r'\whatever.txt',忽略user的值。

如果要在whatever.txt目录中查找user,则需要通过删除反斜杠来使用相对路径。

PS:Python为前缀为反斜杠的某些字符赋予特殊含义。例如,'\t'是制表符。你通常不打算在路径中以这种方式解释反斜杠,所以 - 即使你的帖子中的所有反斜杠都是按字面解释的 - 一般来说养成使用原始字符串的习惯是个好主意(例如r'~\AppData\Local\Temp'指定路径,以便以后不会出现意外的惊喜。或者,您可以改为使用正斜杠:'~/AppData/Local/Temp'