读取目录 正则表达式 用例

本文介绍了一个使用Python及正则表达式处理文件的脚本案例,该脚本能够遍历指定目录及其子目录下的文件,寻找以china开头且包含特定邮箱格式(如@...126.com或@...sina.com)的文本文件,并将其复制到指定的目标目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import os, sys
import random
import re #引入正则表达式模块

 

inpudir = sys.argv[1]
outputDir = sys.argv[2]

names = ["@*126.com", "@*sina.com"]

subdirs = os.listdir(inputdir) #读取inputdir目录下所有子目录名

outputdir = os.path.join(inputdir, outputDir)

if(not(os.path.exists(outputdir))):
    os.mkdir(outputdir)  #在inputdir目录下新建子目录outputDir
fileNum = 1 #文件新名字

for subdir in subdirs:
     inputDir = os.path.join(inputDir, subdir)
     flist = os.listdir(inputDir) #分别读取子目录,将文件名存入flist
     count = len(flist) #count为文件数量
     for i in range(0, count):
          filepath = os.path.join(inputDir, flist[i])
          lines = open(filepath) #读取文件每一行,并存入lines中
          for line in lines.readlines():
               regex = "^china"
               if re.match(regex, line):  #匹配是否以"china"开头
                    for j in range(0, 2):
                         if re.search(names[j], line): #查看是否含有"@...126.com" 或 "@... sina.com"的字符串
                              outputpath = os.path.join(outputdir, str(fileNum) + ".txt")
                              os.system("cp '%s' '%s'"%(filepath, outputpath)) #拷贝文件
                              fileNum += 1
                break
#结束

#

#

 

regex = "^china" 以"china"开头

regex2 = "ever$" 以"ever"结尾

sample = "china will survive forever"

exist = re.search(regex, sample)  #将会返回true

exist2 = re.search(regex2, sample) #将会返回true 

exist4 = re.search(regex, sample) and re.search(regex2, sample)  #将会返回true

regex3 = "will*forever"

exist3 = re.search(regex2, sample) #将会返回true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值