python递归解压文件_递归地列出文件夹中的文件并解压缩压缩文件

我试图递归地列出一个文件夹(包括子文件夹)中的所有文件,并解压缩压缩文件。我就是这么做的:def scan(real_path):

matches = []

for root, dirnames, filenames in walk(real_path):

for filename in fil(filenames, '*'):

matches.append(path.join(root, filename))

return matches

def unzip(destination, path):

z = ZipFile(path, mode = "r")

for archive in z.namelist():

content = z.read(archive)

archive = open("%s/%s" % (destination, archive), "w")

archive.write(content)

z.close()

def startup_files(starting_over = False):

print "STARTING FILES AGAIN..." if starting_over else \

"STARTING FILES..."

x = scan(folder)

print "Files found in folder:"

print x

for archive in x:

archive = Archive.details(archive)

print "READING:", archive.full_path

if archive.extension == ".ZIP":

unpack_zip(archive)

remove(archive.full_path)

startup_files(True)

导致了这个奇怪的错误。我用两个文件测试脚本,1.zip和2.ZIP,其中我有这个文件:SFPDB001.GBK

输出为:

一:好的

^{pr2}$

迭代二:好的STARTING FILES AGAIN...

Files found in folder:

['arp\\_input\\backups\\2.ZIP', 'arp\\_input\\backups\\SFPDB001.GBK']

READING: C:\Users\G1745 IRON\Development\LL\ARP\arp\_input\backups\2.ZIP

迭代三:错误:scan函数在文件夹中查找正确的文件,但迭代试图访问不可用的文件。在STARTING FILES AGAIN...

Files found in folder:

['arp\\_input\\backups\\SFPDB001.GBK']

READING: C:\Users\G1745 IRON\Development\LL\ARP\arp\_input\backups\SFPDB001.GBK

READING: C:\Users\G1745 IRON\Development\LL\ARP\arp\_input\backups\SFPDB001.GBK

READING: C:\Users\G1745 IRON\Development\LL\ARP\arp\_input\backups\2.ZIP

C:\Users\G1745 IRON\Development\LL\ARP\arp\_input\backups\2.ZIP

Traceback (most recent call last):

File "arp\__main__.py", line 22, in

main()

File "arp\__main__.py", line 18, in main

ARP(p.parse_args()).run()

File "C:\Users\G1745 IRON\Development\LL\ARP\arp\arp.py", line 26, in run

self.startup_files()

File "C:\Users\G1745 IRON\Development\LL\ARP\arp\arp.py", line 46, in startup_files

self.unpack_zip(archive)

File "C:\Users\G1745 IRON\Development\LL\ARP\arp\arp.py", line 62, in unpack_zip

Zip.unzip(self.folder, archive.full_path)

File "C:\Users\G1745 IRON\Development\LL\ARP\arp\zip.py", line 17, in unzip

z = ZipFile(path, mode = "r")

File "C:\Python25\lib\zipfile.py", line 339, in __init__

self.fp = open(file, modeDict[mode])

IOError: [Errno 2] No such file or directory: 'C:\\Users\\G1745 IRON\\Development\\LL\\ARP\\arp\\_input\\backups\\2.ZIP'

我不知道为什么会这样。。。我有一个JS背景,而且我现在正在从python开始,所以我不知道我是否应该做些什么。在

OBS:我使用pythonv2.5,因为它是一个遗留代码。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值