python 之 文件夹比较

原因是这样的,有两个文件夹,一个是.jpg的图片形式,一个是文本.xml的文本格式。需要在查询两个文件夹的文件是不是一一对应。

当然用python写了,对于还是菜鸟的我。

读取文件夹下的文件名 并去掉后缀

# -*- coding: utf-8 -*-



import os
import sys
import re
'''
    扫描文件夹dir中所有文件,返回文件的相对路径列表
'''
def GetFileList(dir, fileList):
    newDir = dir
    if os.path.isfile(dir):         # 如果是文件则添加进 fileList
        fileList.append(dir)
    elif os.path.isdir(dir):
        for s in os.listdir(dir):   # 如果是文件夹
            newDir = os.path.join(dir, s)
            GetFileList(newDir, fileList)
    return fileList

# 主函数

# 重定向输出位置
output = sys.stdout
outputfile = open('E:/test.txt', 'w')
sys.stdout = outputfile

list = GetFileList('D:\python27', []) # 获取所有myFolder文件夹下所有文件名称(包含拓展名)

# 输出所有文件夹中的路径(相对于当前运行的.py文件的相对路径)
for route in list:
    # route 为路径

    num = re.sub('(.*)\\\\', "", route)
    num1 = re.sub('(\.)(.*)', "", num)

    print(num1)

# 关闭输出重定向
#print '---'
outputfile.close()
sys.stdout = output

运行结果


文件对比

import os
import sys

def compare(file1,file2):
    f1=open(file1)
    f2=open(file)
    lines1=f1.readlines()
    lines2=f2.readlines()
    print len(lines1)
    print len(lines2)
    output = sys.stdout
    outputfile = open('E:/more1.txt','w')
    sys.stdout = outputfile

    for line1 in lines1:

        if line1 not in lines2:
            print line1
    outputfile.close()
    sys.stdout = output
if __name__ == '__main__':
    compare('E:/test.txt','E:/test1.txt')

这个太简单了不扯了



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值