WindowsError:[错误267]目录名无效 - Spyder 2.7

时间:2017-02-26 19:46:43

标签: python python-2.7 anaconda

我正在尝试使用以下代码在我的目录中打印文件名:

dir_path = 'D:/#/#/#/#.json'     
for filename in os.listdir(dir_path):
    print filename
    f = open(os.path.join(dir_path,filename), 'r')

但运行代码时会显示此错误:

for filename in os.listdir(dir_path):
WindowsError: [Error 267] The directory name is invalid: 'D:/#/#/#/#.json/*.*'

我不确定json/*.*在错误消息中的含义,我是Python的新手,如果这个问题含糊不清,请道歉。

1 个答案:

答案 0 :(得分:1)

关于目录 public void run() { Socket other = new Socket(); try { other.connect(new InetSocketAddress("xxxxxx", xxxx), 1000); log("Connected to host"); while (true) { DataInputStream in = new DataInputStream(other.getInputStream()); String msg = in.readUTF(); if(!lastClientMsg.equals(msg)){ log("[HOST-MSG] "+msg); lastClientMsg = msg; } } } catch (IOException e) { log("Error at creating client: "+e.toString()); } } 是否包含除JSON文件以外的任何文件,您的问题尚不清楚,因此我将给出两个答案。希望其中一个适用于您:

  1. 目录仅包含JSON文件

    在这种情况下,只需从D:/#/#/#

    的末尾删除/#.json即可
    dir_path
  2. 目录包含您要排除的JSON文件和其他文件

    在这种情况下,最好使用Python glob模块。

    以下内容应列出文件夹dir_path = 'D:/#/#/#' for filename in os.listdir(dir_path): print filename f = open(os.path.join(dir_path,filename), 'r') 中的所有.json个文件:

    D:/#/#/#

    请注意import glob dir_path = 'D:/#/#/#/*.json' for filename in glob.glob(dir_path): print filename f = open(filename, 'r') 返回的文件名包含目录路径,因此我们不会对其使用glob.glob

  3. os.listdir列出您提供的目录中的所有文件。但是,似乎你没有传递它的目录名称,你传递它的文件名。如果不给它一个目录,怎么可能列出目录中的所有文件?