如何将变量传递给 os.chdir() 方法?

时间:2021-04-29 12:40:27

标签: python python-3.x

我想将 location = "C:\Program Files (x86)\DATAQ Instruments\1100\5F80861A\Testing 04-28-2021" 传递给 os.chdir() 方法,但出现以下错误:

os.chdir(location)

OSError: [WinError 123] 文件名、目录名或卷标语法不正确:'C:\Program Files (x86)\DATAQ InstrumentsH0\x05F80861A\Testing 04-28-2021'

我也尝试过使用字符串格式方法来传递变量。

os.chdir(r"{}".format(location))

但还是出现同样的错误。

有什么建议可以解决这个问题吗?

建议使用 location = r"C:\Program Files (x86)\DATAQ Instruments\1100\5F80861A\Testing 04-28-2021" 的答案之一有效,但请参阅下面的更新。

更新: 我想提一下,我将通过 sys.argv 方法使用终端获取位置变量。所以我担心如何在我的代码中将位置变量设置为原始字符串。

我看到了一篇关于通过执行以下操作将字符串转换为原始字符串的帖子:

location = "C:\Program Files (x86)\DATAQ Instruments\1100\5F80861A\Testing 04-28-2021"
location = location.encode('unicode_escape')
<块引用>

b'C:\\Program Files (x86)\\DATAQ InstrumentsH0\x05F80861A\\Testing 04-28-2021'

现在,如果我将位置传递给 os.chdir() 它仍然给我同样的错误。

1 个答案:

答案 0 :(得分:1)

在您的路径中,您有一些 unicode 字符,它们是 \1100\5

您可以在定义位置时直接使用原始字符串

location = r"C:\Program Files (x86)\DATAQ Instruments\1100\5F80861A\Testing 04-28-2021"
print(os.chdir(location))