python指定目录中的文件_使用python将文件复制到文件列表中指定的目录

如果你使用集合.defaultdict(list),你得到一个列表,这个字典的元素是列表。如果找不到键,则会使用空列表的值添加该键,这样您就可以立即开始追加到列表中。这就是这条线的作用:d[dir].append(match.group(1))

如果目录名不存在,它会将目录名创建为键,并将找到的文件名追加到列表中。在

顺便说一句,如果您在使正则表达式正常工作时遇到问题,请尝试使用调试标志创建它们。我记不起这个象征性的名字了,但号码是128。如果您这样做:

^{pr2}$

您将获得以下附加输出:at at_beginning

literal 45

literal 62

literal 32

subpattern 1

min_repeat 1 65535

any None

at at_end

您可以看到有一个开始行匹配加上'->'(对于45 62 32),然后是重复的任何模式和行尾匹配。对调试非常有用。在

代码:from __future__ import with_statement

import re

import collections

def get_values(file):

d = collections.defaultdict(list)

dir = ""

dir_regex = re.compile(r'^Directory: (.+?)\\$')

file_regex = re.compile(r'\-\> (.+?)$')

with open(file) as f:

for line in f:

line = line.strip()

match = dir_regex.search(line)

if match:

dir = match.group(1)

else:

match = file_regex.search(line)

if match:

d[dir].append(match.group(1))

return d

if __name__ == '__main__':

d = get_values('test_file')

for k, v in d.items():

print k, v

结果:Images ['01-some_image1.jpg', '02-some_image2.jpg']

Music ['01-some_song1.mp3', '02-some_song2.mp3', '03-some_song3.mp3']

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值