字符串格式化不适用于python中的OS模块

时间:2012-08-28 19:59:31

标签: python module operating-system string-formatting

我目前正在编写一个脚本,它对Windows目录做了一些事情,我似乎无法弄清楚我做错了什么。以下是代码的相关摘录。

    import os
    user = os.environ['USERNAME']
    os.chdir("/users/%s/dekstop") % user

但是当我这样做时,会出现以下错误,

WindowsError: [Error 3] The system cannot find the path specified: '/users/%s/desktop'

是否有原因导致字符串格式无效?

2 个答案:

答案 0 :(得分:5)

% users应在括号内:

os.chdir("/users/%s/dekstop" % user)

答案 1 :(得分:0)

os.chdir("/users/%s/dekstop")是对os.chdir的调用,没有任何格式化,%用户将对此结果起作用,这不是你想要发生的。

您需要在将字符串传递给chdir函数

之前构造它

e.g。

s = "/users/%s/desktop" % user
os.chdir( s )

但在这种情况下,更多的是处理目录,我会使用os.path函数来操纵路径,例如os.path.expanduser('~/Desktop')尽管如此,你应该查看正确的windows变量,因为并非所有设置都有/ users下的用户目录