找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 12416|回复: 3

[问题求助] python遍历文件遇到的问题

[复制链接]
发表于 2020-5-26 16:49:46 | 显示全部楼层 |阅读模式
def getFiles(dir, suffix): # 查找根目录,文件后缀
    res = []
    for root, directory, files in os.walk(dir):  # =>当前根,根下目录,目录下的文件
            for filename in files:
                    name, suf = os.path.splitext(filename) # =>文件名,文件后缀
                    if suf == suffix:
                            res.append(os.path.join(root, filename)) # =>吧一串字符串组合成路径
    return res


for file_path in getFiles("./", '.png'):  # =>查找以.png结尾的文件
#        img1=Image.open(file_path)
        print(file_path)

当前路径有很多png文件,同时有个子目录101-1,里面也有很多png文件。
我的这段代码会把当前目录下的png和子文件夹的101-1全部列出来的。
如何修改代码,我只要列出当前路径下的png文件,谢谢!
发表于 2020-5-26 20:08:56 | 显示全部楼层
os.listdir(path='.') 替换 os.walk()
https://docs.python.org/3.8/library/os.html#os.listdir
发表于 2020-5-26 22:22:15 | 显示全部楼层
  1. directory.clear()
复制代码
发表于 2020-5-26 22:24:55 | 显示全部楼层
本帖最后由 Gin_Q 于 2020-5-26 23:16 编辑

我正好也需要,拿去自己改改!
  1. #!/usr/bin/env python3
  2. #coding=utf-8

  3. import os
  4. import time
  5. import shutil


  6. #禁止访问目录列表
  7. stop = ['837761056','1289832516','1551961057']
  8. #指定复制文件列表
  9. filetype = ['.mp4','.avi']
  10. #复制或移动目标目录
  11. dstdirs = r'd:\\'

  12. for root,dirname,filename in os.walk(os.getcwd()):
  13.     print('当前目录为:',root)
  14.     #print('当前目录文件夹有:',dirname)
  15.     #print('当前文件有:',filename)
  16.     #获取当前目录文件不递归
  17.     #dirname.clear()
  18.     #排除指定目录
  19.     for i in stop:  
  20.         if i in dirname:
  21.             dirname.remove(i)
  22.    
  23.     for i in (os.path.join(root,name) for name in filename):
  24.         #print('完整文件路径: ',i,(os.path.getctime(i)))
  25.         for ft in filetype:
  26.             if ft in i:
  27.                 print('正在复制:\n',i,'--->>>',dstdirs)
  28.                 #复制
  29.                 shutil.copy(i,dstdirs)
  30.                 #print('正在移动:\n',i,'--->>>',dstdirs)
  31.                 #移动
  32.                 #shutil.move(i,dstdirs)
  33.    
  34. print('Done!')
  35. os.popen('pause')
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 03:51 , Processed in 0.009220 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表