Python WindowsError:[错误123]文件名、目录名或卷标语法不正确:

Python WindowsError:[错误123]文件名、目录名或卷标语法不正确:,python,Python,我是编程新手,这实际上是我第一次从事编码工作。下面的代码引发了一个错误: WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect. 我找不到问题所在 import os folders = ["pdcom1", "pdcom1reg", "pdcomopen"] for folder in folders: path = r'"C:\Apps\CorVu

我是编程新手,这实际上是我第一次从事编码工作。下面的代码引发了一个错误:

WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect.
我找不到问题所在

import os

folders = ["pdcom1", "pdcom1reg", "pdcomopen"]


for folder in folders:
    path = r'"C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1"'
    for file in os.listdir(path):
        print file

当它解决了问题时,我把它作为一个答案

不要使用单引号和双引号,尤其是当您定义一个前面有
r
的原始字符串时

正确的电话是

path = r"C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1"


我在Spyder中遇到了一个相关的问题,但问题似乎是路径名中转义字符(\)和“\”之间的关系 以下是我的说明和解决方案(注意单\双\\):


在与Jupyter合作时,我也遇到了类似的问题。 我试图使用shutil的复制功能将文件从一个目录复制到另一个目录。 问题是我忘记了导入包。(愚蠢的)但是python没有给出导入错误,而是给出了这个错误

通过添加以下内容解决:

from shutil import copy

我在Django上遇到了这个问题,这是因为我忘记了在后端启动虚拟环境。

我在Django Rest框架上遇到了相同的错误,与UI无关,仍然会遇到这个错误。 我申请了下面的解决方案,为我工作

  • 重新启动机器
  • 重新启动虚拟环境

    • 这是一个老问题,但我想在这里提到Python3中的pathlib库

      如果你写:

      from pathlib import Path
      path: str = 'C:\\Users\\myUserName\\project\\subfolder'
      osDir = Path(path)
      

      osDir将得到相同的结果

      如果您将其写为:

      path: str = "subfolder"
      osDir = Path(path)
      absolutePath: str = str(Path.absolute(osDir))
      
      您将返回绝对目录,如下所示

      'C:\\Users\\myUserName\\project\\subfolder'
      
      您可以查看更多有关pathlib库的信息。

      执行以下命令

      Python manage.py makemigrations

      它将显示丢失的包

      安装缺少的软件包,然后再次运行下面的命令,以确保没有遗漏任何内容

      Python manage.py makemigrations


      它将解决您的问题。

      我遇到了相同的错误,尽管我没有使用您案例中的路径。我的问题的解决方案是安装django扩展包。

      使用单引号和双引号。这可能是个问题!好吧,就是这样!非常感谢。我已经添加了一个不同的解决方案,我想我忘了删除它们。调试提示:确保您提供给看起来行为不正常的函数的数据是正确的。一个简单的
      打印(路径)
      会显示双引号是字符串值的一部分。问题是字符串上的双引号。OP已将字符串转换为原始字符串
      r“path”
      ,因此转义字符不是问题。我有错误
      FileNotFoundError:[WinError 3]系统找不到指定的路径:“C:\\Users…\\xxx.csv”
      ,我的代码正在使用
      os.rename(r'C:Users\…\\xxxx.csv',r'C:\Users\…\xxxx\+str(当前日期)+'.csv')
      我如何解决它?我在Jupyter中遇到了一个类似的问题,只有一些新添加的子目录。让我抓狂,但使用os.chdir在引用的路径前添加“r”修复了它。r是否以某种方式告诉程序它是一个路径而不是转义字符?在我的例子中,只有从原始字符串到普通字符串的转换才有帮助?您是否遇到了完全相同的问题?在回答这个问题时,我使用的是python 2.7。从未尝试过python 3是否会表现不同……我使用python 3,但症状是一样的。我想还不清楚是否是同一个问题,因为错误消息非常不具体。我想我的答案的核心(“不要混合引号类型”)通常是有效的,但在所有情况下可能都不够。你能确定禁用我的解决方案的字符吗?如果是,那就值得单独回答!
      path: str = "C:\\Users\\myUserName\\project\\subfolder"
      osDir = Path(path)
      
      path: str = "subfolder"
      osDir = Path(path)
      absolutePath: str = str(Path.absolute(osDir))
      
      'C:\\Users\\myUserName\\project\\subfolder'