【问题标题】:Invalid syntax in path when changing directory更改目录时路径中的语法无效
【发布时间】:2013-09-29 16:03:05
【问题描述】:

在 Python 中,首先我检查我在哪里:

import os
os.getcwd()

这给了我%run C:/Users/<name>/Desktop/<script.py> 现在我想改变我的位置:

os.chdir("C:/Users/<name>/Desktop/")

这给了我

%run C:/Users/<name>/Desktop/<script.py>
  File "C:\Users\<name>\Desktop\<script.py>", line 3
    os.chdir("/C:/Users/<name>/Desktop/")
              ^
SyntaxError: invalid syntax

我已经尝试过这种方法的变体,但似乎没有任何效果。

【问题讨论】:

  • 路径无效,windows路径应该是这样C:\\path\\to\\file
  • @enginefree 我认为斜线的方向并不重要,我认为 Python 会转换它们。此外,我怀疑这会导致 SyntaxError。
  • @PetarGyurov 完整代码是什么?
  • 我的意思是,/ 之前的 C: 这就是它给出语法错误的原因。那是一条无效的路径。
  • %run 是什么意思?

标签: python directory dir cd


【解决方案1】:

您可以通过多种方式执行此操作,包括:

使用 os.path 加入路径和环境变量:

os.chdir(os.path.join(os.getenv('userprofile'),'Desktop'))

您也可以使用双反斜杠(在 Python 字符串中需要对反斜杠进行转义):

os.chdir('c:\\users\\prosserc\\desktop')

或使用原始字符串:

os.chdir(r'c:\users\prosserc\desktop')

我会推荐第一个选项,因为它确实需要硬编码的用户名。

【讨论】:

  • 我尝试了你建议的所有方法。第一个给了我一个错误,另外两个没有做任何事情;即:目录还是一样的。
  • 我在运行第一个时没有收到错误。错误信息说什么?对于另外两个,在运行命令之前你在哪个目录?
  • 这是一个很长但类型是TypeError: object of type 'NoneType' has no len() 在我运行它之前我在C:/Users/Petar/Desktop/script.py
  • 我假设您使用的路径是在 Windows(Vista 或更高版本)上,这是正确的吗?另外,您使用的是什么版本的 Python?
  • 我使用的是 Windows7。我不确定 Python 版本是什么(我是新手)。在我的脚本编辑器中选择的语言有 Python 和 Python 3。我使用 Python。
【解决方案2】:

你可以这样写代码:

path = "full path to your directory"
dirs = os.listdir(path)
#some code

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-06
    • 2016-01-13
    • 2019-08-30
    • 2015-02-27
    • 1970-01-01
    • 2013-08-21
    • 2011-10-21
    • 2013-09-12
    相关资源
    最近更新 更多