码迷,mamicode.com
首页 > 其他好文 > 详细

【14】文件读取并格式化处理

时间:2018-10-23 10:49:47      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:color   div   pytho   遍历   文本   打开文件   技术分享   split   分享   

技术分享图片

案例:读取一个邮箱的文本信息,并生成新的文件信息进行保存

2018-10-23
BUG心得:在一个文件中两次打开文件不能as 为同一个名的文件对象,比如下边的14 和 36 行 分别要不同的名 file_obj 和file_obj2

 一、把如下的文件结构下的文件格式化处理为另一个文件结构保存

技术分享图片

 

#__author:"吉*佳"
#date: 2018/10/23 0023
#function:
# BUG心得:在一个文件中两次打开文件不能as 为同一个名的文件对象,比如下边的14 和 36 行 分别要不同的名 file_obj 和file_obj2


# 读取一个邮箱的文本信息,并生成新的文件信息进行保存

import os
import collections

# 处理普通文件函数
def work(filePath):
    resultDir = rE:\[AAA](千)全栈学习python\18-10-21\day7\resultDir
    with open(filePath,r) as file_obj:
        while True:
            #读取到第一行数据 如 #laphael1985@163.com----198587
            lineInfo = file_obj.readline()

            # 设置一个退出while循环的标志
            if len(lineInfo) < 5:
                break

            mailPsw = lineInfo.split(----)[-1]
            mailStr = lineInfo.split(----)[0]
            mailType = mailStr.split(@)[-1].split(.)[0]
            mailDetail = mailStr.split(@)[0]

            #存储为新的文件夹和文件文本操作
            newDirPath  = os.path.join(resultDir,mailType)
            # 检测没有这个文件夹的话就创建一个
            if not os.path.exists(newDirPath):
                os.mkdir(newDirPath)

            #创建完类型文件夹之后把新的文件信息存储进去
            newFilePath = os.path.join(newDirPath,mailType+.txt)
            with open(newFilePath,a) as file_obj2:
                file_obj2.write(mailDetail)
                file_obj2.write(----)
                file_obj2.write(mailPsw+\n)


def getAllDirIT(path):
    queue=collections.deque()
    #进队
    queue.append(path)

    #循环,当队列为空,停止循环
    while len(queue) != 0:
        #出队数据 这里相当于找到A元素的绝对路径
        dirPath = queue.popleft()
        # 找出跟目录下的所有的子目录信息,或者是跟目录下的文件信息
        dirList = os.listdir(dirPath)

        #遍历该文件夹下的其他信息
        for filename in dirList:
            #绝对路径
            dirAbsPath = os.path.join(dirPath,filename)

            # 判断:如果是目录dir入队操作,如果不是dir打印出即可
            if os.path.isdir(dirAbsPath):
                print("目录:"+filename)
                queue.append(dirAbsPath)
            else:
                # 找到普通文件,进行处理信息。把这个普通文件的路径传递过去
                work(dirAbsPath)

# 函数的调用
getAllDirIT(rE:\[AAA](千)全栈学习python\18-10-21\day7\newdir)

 

结果:

技术分享图片

163邮箱处理后保存的账号密码

技术分享图片

 

 

技术分享图片

 

【14】文件读取并格式化处理

标签:color   div   pytho   遍历   文本   打开文件   技术分享   split   分享   

原文地址:https://www.cnblogs.com/jiyongjia/p/9834788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!