作者s4028600 (佑)
看板Python
标题[问题] 读取下一个资料夹路径
时间Fri Aug 2 21:48:06 2019
简单来说
我已经用os.walk列出所有子资料夹的路径
然後当作参数进行读取
但是读取却只会读取列出来的最後一条
我要如何让他读取下一个路径
有相关的教学吗
网路上只有找到列出路径
找不到将这些列出的路径拿来用的方法
求详细...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.28.62.116 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1564753688.A.038.html
1F:→ tsaiminghan: 你还是把code贴出来吧08/02 22:27
※ 编辑: s4028600 (125.230.135.251 台湾), 08/02/2019 22:44:35
2F:→ s860134: 所以你要想办法让你的其他操作活在和 print (dirPath)08/02 23:47
3F:→ s860134: 在同一个 for 的 scope 内08/02 23:48
4F:→ s860134: 也就是,你要写出一个双层 for loop,用 for 包 for08/02 23:49
5F:→ s860134: 一开始不习惯就去写个 99 成法表吧08/02 23:49
6F:→ s4028600: 但是资料夹名称不是数字...08/03 01:12
7F:→ s4028600: 而且代码被分开第一段和最後一段 这要怎麽办...08/03 01:13
8F:→ s4028600: 99乘法的写法会变成路径加路径 不然就是错误08/03 21:24
10F:→ s860134: 你还是多写几次 99 乘法表吧,因为这根本就是同一件事08/03 23:42
11F:→ s860134: 加几个缩排就解决了08/03 23:43
这我试过 但会变成
======================= RESTART: D:\long\Desktop\测试.py =====================
==
D:\long\Desktop\image\
Traceback (most recent call last):
File "D:\long\Desktop\测试.py", line 21, in <module>
isJpg = is_valid_jpg(pic_file)
File "D:\long\Desktop\测试.py", line 5, in is_valid_jpg
with open(jpg_file, 'rb') as f:
PermissionError: [Errno 13] Permission denied: 'D:\\long\\Desktop\\image\\\\zx
cvbn'
所以以为不能这样缩排
翻译好像是权限不足?
但是用系统管理身份也无法执行...
※ 编辑: s4028600 (125.230.135.251 台湾), 08/04/2019 00:13:03
12F:→ s4028600: 99乘法是指 08/04 00:17
13F:→ s4028600: george.tw/2017/11/27/python_note-3/ 08/04 00:17
14F:→ s4028600: 呃...很难懂... 08/04 00:18
15F:→ s860134: 所以你知道权限不足不是python 的问题想办法解决 08/04 00:34
16F:→ s860134: 看到 code 不能执行要知道为啥 不见得是code有错 08/04 00:36
17F:→ s860134: 复制别人的 code 和自己写出来是两件事情 08/04 00:38
18F:→ s860134: 回圈处理资料夹或档案和写 99 乘法表完全是依样概念08/04 00:39
19F:→ s4028600: 权限不足无法解决...不管是系统管理员还是档案关闭都不 08/04 01:59
20F:→ s4028600: 行...08/04 01:59
21F:→ s4028600: 原因找到了...应该... 可能是因为开启目录而不是文件所08/04 05:39
22F:→ s4028600: 以权限不足 那我就真的没法了 毕竟我连代码都看不懂...08/04 05:39
以下要用整页模式才能看调整中
请求分析
import os
def is_valid_jpg(jpg_file):
with open(jpg_file, 'rb') as f:
f.seek(-2, 2)
buf = f.read()
return buf == b'\xff\xd9'
def is_valid_png(png_file):
with open(png_file, 'rb') as f:
f.seek(-2, 2)
buf = f.read()
return buf == b'\x60\x82'
for dirPath, dirNames, fileNames in os.walk("D:\long\Desktop\image\\"):
#
利用os.walk取得路径dirPath是根目录dirNames是子目录fileNames是档案
print (dirPath) #打印dirPath
path =(dirPath+"\\") #设定根目录+"\\"为path
for file in os.listdir(path): #回圈path的子目录到file
pic_file = path + file #path+path的子目录
isJpg = is_valid_jpg(pic_file) #下面这3行真的看不懂意思...
isPng = is_valid_png(pic_file)
print("jpeg : %s, png %s, file %s " % (isJpg, isPng, file))
os.system("pause") #停止
以上也不知道我理解的对不对
希望一点补充
※ 编辑: s4028600 (125.224.166.100 台湾), 08/04/2019 05:57:12
※ 编辑: s4028600 (125.224.166.100 台湾), 08/04/2019 05:58:33
※ 编辑: s4028600 (125.224.166.100 台湾), 08/04/2019 06:01:27
23F:→ s860134: 你在这边等答案的时间都够你把 python 学到一定程度了 08/04 10:45
24F:→ s4028600: 因为有些自学也看不懂 所以才要问啊... 08/04 19:58