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

时间:2015-11-09 21:29:33

标签: 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\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1"'
    for file in os.listdir(path):
        print file

8 个答案:

答案 0 :(得分:20)

当它解决问题时,我把它作为答案。

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

然后正确的电话

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

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

答案 1 :(得分:3)

我在Spyder中有一个相关的问题,但问题似乎是转义字符(" \")和" \"之间的关系。在路径名称中 这是我的插图和解决方案(注意单\ vs双\ \):

path =   'C:\Users\myUserName\project\subfolder'
path   # 'C:\\Users\\myUserName\\project\subfolder'
os.listdir(path)              # gives windows error
path =   'C:\\Users\\myUserName\\project\\subfolder'
os.listdir(path)              # gives expected behavior

答案 2 :(得分:2)

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

通过添加以下内容解决:

for key in keys:
        pair.append(key)
        freq.append(pair.copy())

答案 3 :(得分:1)

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

答案 4 :(得分:1)

我在使用Django Rest Framework时遇到了同样的错误,这与UI无关,仍然出现此错误。 我申请了以下解决方案,为我工作。

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

答案 5 :(得分:1)

这是一个古老的问题,但我想在此提及Python3中的pathlib库。

如果您写:

from pathlib import Path
path: str = 'C:\\Users\\myUserName\\project\\subfolder'
osDir = Path(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库here的更多信息。

答案 6 :(得分:0)

在下面执行

<块引用>

Python manage.py makemigrations

它会显示丢失的包裹。

安装丢失的包并再次运行下面的命令以确保没有丢失任何东西。

<块引用>

Python manage.py makemigrations

它将解决您的问题。

答案 7 :(得分:0)

虽然我没有像你的情况那样使用路径,但我遇到了同样的错误。我的问题的解决方案是安装 django-extension 包。