【问题标题】:String formatting not working with OS module in python字符串格式不适用于 python 中的 OS 模块
【发布时间】:2012-08-28 19:59:30
【问题描述】:

我目前正在编写一个对 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'

字符串格式化不起作用有什么原因吗?

【问题讨论】:

  • os.chdir("/users/%s/dekstop" % user)
  • 注意:这不能是您运行的代码。您的chdir 行拼写错误dekstop,但错误消息具有正确的“桌面”。请始终复制并粘贴您的代码,以便人们查看正确的代码..
  • @DSM 这是我运行的代码,问题是我从解释器中复制了一行,从脚本中复制了另一行。很抱歉!
  • @Ondaje:这里不用担心,因为它是次要的。但是很容易出现逗号错位之类的问题,如果我们没有看到对应错误消息的代码,那将很难提供帮助..

标签: python module operating-system string-formatting


【解决方案1】:

% users 应该在括号内:

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

【讨论】:

  • 哦哇...我很笨...非常感谢!你刚刚让我摆脱了数小时的困惑。
【解决方案2】:

os.chdir("/users/%s/dekstop") 是对 os.chdir 的调用,没有任何格式,然后 % 用户将处理此结果,这不是您想要发生的。

您需要先构造字符串,然后再将其传递给 chdir 函数

例如

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多