作者s4028600 (佑)
看板Python
標題[問題] 讀取下一個資料夾路徑
時間Fri Aug 2 21:48:06 2019
簡單來說
我已經用os.walk列出所有子資料夾的路徑
然後當作參數進行讀取
但是讀取卻只會讀取列出來的最後一條
我要如何讓他讀取下一個路徑
有相關的教學嗎
網路上只有找到列出路徑
找不到將這些列出的路徑拿來用的方法
求詳細...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.28.62.116 (臺灣)
※ 文章網址: https://webptt.com/m.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