Python 批量读取文件名并写入txt中

这是我的第三篇Python恢(装)宏(逼)巨著大笑,“Python 批量读取文件名并写入txt中”;(小生不才,望高手多指教)

先说下脚本使用的环境吧,在做项目的过程中需要动态加载图片,使用Unity的Resources.Load方法,但是百十张图片怎么能一 一写下他们的名字作为加载的路径呢?总不能一个一个编辑后存到数组中吧,(虽然我最初是这么干的。。。可怜)。所以必须有一个批量的工具,必须的。于是乎激发了我的灵感,下面看代码。备注少,不动的给我留言,我会及时回复的。

#coding=utf-8
import sys
import os, glob

reload(sys)
sys.setdefaultencoding('utf-8')

#输出路径,自行修改
TxtPath="C://Users//yupu//Desktop//f.txt"

def BFS_Dir(dirPath, dirCallback = None, fileCallback = None):
    queue = []
    ret = []
    f=open(TxtPath,'w')    # r只读,w可写,a追加
    queue.append(dirPath);
    while len(queue) > 0:
        tmp = queue.pop(0)
        if(os.path.isdir(tmp)):
            ret.append(tmp)
            for item in os.listdir(tmp):
                queue.append(os.path.join(tmp, item))
            if dirCallback:
                dirCallback(tmp)
        elif(os.path.isfile(tmp)):
            ret.append(tmp)
            if fileCallback:
                mPath , ext = os.path.splitext(tmp)
                names = os.path.split(mPath)
                if(ext==".meta"):
                    continue
            	else:
            	   print names[1]
            	   f.write(names[1])
            	   f.write('\n')
            	   fileCallback(tmp)
    f.close()
    return ret

def printDir(dirPath):
    print "dir: " + dirPath

def printFile(dirPath):
    print "file: " + dirPath

if __name__ == '__main__':
    while True:
        path = raw_input("Path:")
        try:
            b = BFS_Dir(path , printDir, printFile)
            print ("\r\n          *******\r\n"+"*********Done*********"+"\r\n          **********\r\n")
        except:
            print "Unexpected error:", sys.exc_info()
        raw_input('press enter key to rehandle')

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TxNet.Ltd.

你的赞同是对我的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值