我正在尝试使用以下代码在我的目录中打印文件名:
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的新手,如果这个问题含糊不清,请道歉。
答案 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文件以外的任何文件,您的问题尚不清楚,因此我将给出两个答案。希望其中一个适用于您:
目录仅包含JSON文件
在这种情况下,只需从D:/#/#/#
:
/#.json
即可
dir_path
目录包含您要排除的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
。
os.listdir
列出您提供的目录中的所有文件。但是,似乎你没有传递它的目录名称,你传递它的文件名。如果不给它一个目录,怎么可能列出目录中的所有文件?