批量处理文件,正则表达式处理文件

最近由于有批量处理文件的需要简单的使用了一下python来对文件进行批量操作

需求:批量修改文件名称  

因为有些编号被删除   要重新按顺序编号

因此采取读取目录下的文件名称  然后修改称保存到另外一个文件夹中

 

使用了os和shutil库

import  shutil
import os
def copy_name(path):
    action_list = os.listdir(path)
    action_list.sort(key=lambda x:int(x[:-5]))
    for temp in action_list:
        print(temp)
    i=109
    for name in action_list:
        shutil.copy(path+"\\"+name ,r'C:\Users\84675\Desktop\new2\{}.mtnx'.format(i))
        i=i+1

re_name(r'C:\Users\84675\Desktop\动作2\134~266动作(无重复)')

os.listdir(" 路径")  读取目录下的所有文件名称并返回列表    返回的列表是乱序的

因此

要读取文件编号(数字)然后排序 action_list.sort(key=lambda x:int(x[:-5]))

然后拷贝文件并按序命名到到另一个文件夹中

shutil.copy(path+"\\"+name ,r'C:\Users\84675\Desktop\new2\{}.mtnx'.format(i))

 

正则表达式处理文本文件

re.search   搜索指定的字符串(不是从头开始匹配)

re.S表示   ‘.’也可以匹配/n

re.search   返回一个对象

如果使用page.string()  打印的话会打印出原字符串   (就是在这里卡了好久)

要使用page.group()才能把要找的东西给打印出来

page.span()  返回匹配字符串的的位置信息

 

  

re.sub(‘正则表达式’,‘替换成什么字符串’,‘字符串’ )     找到指定字符串并替换

 

 

文件读取

读文件

‘r’代表读取文件

encoding= ‘utf8’  使用utf8 编码

路径前最好加上r表示把\当成是正常字符而不是转义

f.readlines()以\n为结尾返回一个list

f.read()

正常输入换行

 

我的需求是新建一个文件并将列表里的数据放入文件中

pages为一个列表

 

w'这个模式是这样:如果没有这个文件,就创建一个;如果有,那么就会先把原文件的内容清空再写入新的东西。所以若不想清空原来的内容而是直接在后面追加新的内容,就用'a'这个模式。

  • write()方法和read()、readline()方法对应,是将字符串写入到文件中。
  • writelines()方法和readlines()方法对应,也是针对列表的操作。它接收一个字符串列表作为参数,将他们写入到文件中,换行符不会自动的加入,因此,需要显式的加入换行符。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值