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

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

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 = r‘E:\[AAA](千)全栈学习python\18-10-21\day7\resultDir‘
    with open(filePath,‘r‘) as file_obj:
        while True:
            #读取到第一行数据 如 #[email protected]
            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(r‘E:\[AAA](千)全栈学习python\18-10-21\day7\newdir‘)

结果:

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

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

时间: 2024-10-06 16:14:15

【14】文件读取并格式化处理的相关文章

14.json文件读取

json文件读取 1.#读取json import json str='''[ { "name":"Tom", "gender":"male", "birth":"1997-12-13" }, { "name": "Jerry", "gender": "male", "birth": &q

一文贯通python文件读取

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; -webkit-hyphens: auto; font: 24.0px 'Helvetica Neue'; color: #3e3e3e; -webkit-text-stroke: #3e3e3e} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; -webkit-hyphens: auto; font: 16.0px 'Helvetica Neue'; color: #8c8c8c; -w

文件读取 FILE

需要了解的概念 [数据流][缓冲区(Buffer)][文件类型][文件存取方式][借助文件指针读写文件] 需要理解的知识点包括:数据流.缓冲区.文件类型.文件存取方式 1.1 数据流: 指程序与数据的交互是以流的形式进行的.进行C语言文件的存取时,都会先进行"打开文件"操作,这个操作就是在打开数据流,而"关闭文件"操作就是关闭数据流 1.2 缓冲区(Buffer): 指在程序执行时,所提供的额外内存,可用来暂时存放做准备执行的数据.它的设置是为了提高存取效率,因为内

文件读取输入

在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:1.基于C的文件操作: 2.基于C++的文件操作: 3.基于WINAPI的文件操作: 4.基于BCB库的文件操作: 5.特殊文件的操作. 壹.基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之. 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:

Java文件读取大全

在此本人只搜集了四种文件读取的方法,分别是:按字节读取文件内容.按字符读取文件内容.按行读取文件内容.随机读取文件内容 以及给文件追加内容: 废话不多说,直接贴代码,希望能帮到一些人!如果有看不懂的可以加我QQ592652578,详聊. public class ReadFromFile {    1.按字节读取文件内容 /** * 以字节为单位读取文件,常用于读二进制文件,如图片.声音.影像等文件. */ public static void readFileByBytes(String fi

审计 6 SSRF和任意文件读取

1 <?php 2 error_reporting(0); 3 session_start(); 4 header("Content-type:image/jpeg"); 5 echo file_get_contents($_SESSION['avatar']); 6 ?> 在第5行发现    读取的文件后,将文件进行了输出.  所以猜测此处可能存在SSRF 和  任意文件读取 搜索关键变量$_SESSION['avatar']  发现在登陆 和修改密码 读取了改变量,而上

[Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题

最近研究搜索引擎.知识图谱和Python爬虫比较多,中文乱码问题再次浮现于眼前.虽然市面上讲述中文编码问题的文章数不胜数,同时以前我也讲述过PHP处理数据库服务器中文乱码问题,但是此处还是准备简单做下笔记.方便以后查阅和大家学习.        中文编码问题的处理核心都是——保证所有的编码方式一致即可,包括编译器.数据库.浏览器编码方式等,而Python通常的处理流程是将unicode作为中间转换码进行过渡.先将待处理字符串用unicode函数以正确的编码转换为Unicode码,在程序中统一用U

java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

1 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileNotFoundException; 8 import java.io.FileOutputStream; 9 import java.io.IOException; 10 import java.io.

matlab文件读写处理实例(一)——不规则文件读取

数据: A) Title: Income DataB) Relevant Information:Marketing Database.Source: Impact Resources, Inc., Columbus, OH (1987). A total of N=9409 questionnaires containg 502 questions were filled out by shopping mall customers in the San Francisco Bay area.