看代码吧~

#-*-encoding:utf-8-*-
import os, sys, time, datetime, glob
fo1 = open("C:/Users/Administrator/Desktop/areainfo.txt", "w")
fo2 = open("C:/Users/Administrator/Desktop/personinfo.txt", "w")
for root, dirs, files, in os.walk("E:/test", topdown=False):
    for name in files:
        file_name = os.path.join(root,name)
        if os.path.splitext(file_name)[1] == '.txt':
            print(file_name)
            with open(file_name) as a_file:
                for data in a_file.readlines():
                    str2=[]
                    str4=[]
                    for i in [0, 1, 2, 3, 7]:
                        str2.append(data.split('||~||')[i])
                    fo1.write("||~||".join(str2)+"\n")
                    for i in [4, 5, 6, 7, 8, 9, 10, 11]:
                        str4.append(data.split('||~||')[i])
                    fo2.write("||~||".join(str4)+"\n")
fo1.close()
fo2.close()

补充:python按照某个分隔符切分text文件字符串并存入excel

有一份如图所示的文件信息,信息量较大需要将text文件转为excel处理,按照图中的分隔符“&”分列数据存储至excel文件。

在这里插入图片描述

实现代码如下:

# -*- coding: utf-8 -*-
"""
Created on Mon Mar 30 18:05:35 2020
@author: fengzi
"""
import os
import pandas as pd
from datetime import datetime
 
def main():
    source_dir = 'E:/服管部/满意度调研/满意度影响因子分析/3.18\BI提单数据/BI2020031700005分开/分列测试/集团成员.txt'
    target_dir = 'E:/服管部/满意度调研/满意度影响因子分析/3.18\BI提单数据/BI2020031700005分开/分列测试/集团成员.xlsx'
    new_colums = "look\r\n"
    
    start_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print("开始时间:",start_time)
    
    #文件开头增加新的一列内容作为列名(原列名太长/不可用)
    f = open(source_dir, 'r')
    content = f.read()  # 读取文件内容
    f_new = open('b.txt', 'w')
    f_new.write(new_colums)  # 开头写入内容并换行
    f_new.write(content)    # 写入原文件内容
    f_list=list(set(f.readlines()))  #先把内容readlines()为列表,然后用set集合去重后再转化为列表,赋值于变量f_list
    for i in f_list:   #for循环列表f_list,判断是否有“\n”字符,如果有,将元素‘\n'移除
        if i=='\n':
           f_list.remove(i)
    f_new.writelines(f_list) #将列表f_list的内容(此时列表已去除换行空白行),通过writelines的方式写入新文件,      
    f.close()
    f_new.close()
    os.remove(source_dir)  # 移除老文件
    os.rename('b.txt', source_dir) # 新文件命名为老文件名
    data = pd.read_csv(source_dir,"rb",engine='python') #读入数据出现乱码可添加engine='python'
    
    #字符串切分后结果分列展示
    df = pd.DataFrame(data, columns=["look"]) #需要分列的列名
    df=df["look"].str.split('&', expand=True)  # 分列的字符,split默认输出list,设置expand=True结果会分列展示  
    #print(df)
    df.to_excel(target_dir) #列表df存储至excel
    
    end_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print("完成时间",end_time)
    
if __name__ == "__main__":
    main()

代码实现效果:

在这里插入图片描述

此代码的缺陷是实现效果不佳,增加了首列和首行的序号,后期有时间再学着改善。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员的世界。如有错误或未考虑完全的地方,望不吝赐教。

Python 通过分隔符分割文件后按特定次序重新组合的操作的更多相关文章

  1. Python基础知识学习

    Python基础知识建议有程序语言基础的童鞋阅读,零基础阅读可能会有点费解点击下载 python最新版本文章目录Python基础知识注释方法数据类型输入和输出输入输出算数运算符常用运算函数比较运算符逻辑运算符成员运算符分支循环列表列表的取值获取元素的下标获取列表中多个元素(切片)列表的增删改操作增加......

  2. python使用numpy中的size()函数实例用法详解

    在python中,提到如何计算多维数组和矩阵,那一定会想到numpy。numpy定义了矩阵和数组,为它们提供了相关的运算。size中文解释为大家、尺寸的意思,如果想要统计矩阵元素个数,使用size()函数就可以解决。1、Numpy size()函数主要是用来统计矩阵元素个数,或矩阵某一维上的元素个数......

  3. Python学习(5)(while循环语句、循环嵌套、break/continue、赋值运算符、转义字符等 )

    Python学习(5)一、python的while 循环语句二、python的赋值运算符三、python的while 循环语句 示例四、python的 break 和 continue五、python的while 嵌套1、用嵌套打印小星星2、python 九九乘法表六、python的print 函数......

  4. Python解析JSON对象的全过程记录

    前言本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象。json处理模块的主要任务,是将一个JSON对象,转换成Python数据类型数据进行处理,或者反之,将Python数据类型数据,转换成JSON对象(字符串流),在不同的模块或者系统间传输。1. JSON数据格式特点对......

  5. [Python] Pandas 对数据进行查找、替换、筛选、排序、重复值和缺失值处理

    如何使用pandas模块中的函数对DataFrame中的数据进行查找和替换目录1. 数据文件2. 读数据3. 查找数据4. 替换数据4.1 一对一替换4.2 多对一替换4.3 多对多替换5. 插入数据6. 删除数据6.1 删除列6.2 删除行7. 处理缺失值7.1 数据准备7.2 查看缺失值7.3 ......

  6. pytest之assert断言的具体使用

    背景本文总结使用pytest编写自动化测试时常用的assert断言。说明本文将从以下几点做总结:为测试结果作断言为断言不通过的结果添加说明信息为预期异常作断言为失败断言自定义说明信息为测试结果作断言在断言方面,pytest框架比其他类似的框架(比如unittest)更加简洁,易用,我想这是我选择py......

  7. Q-Q图原理详解及Python实现

    【导读】在之前的《数据挖掘概念与技术 第2章》的文章中我们介绍了Q-Q图的概念,并且通过调用现成的python函数, 画出了Q-Q图, 验证了Q-Q图的两个主要作用,1. 检验一列数据是否符合正态分布 2. 检验两列数据是否符合同一分布。本篇文章将更加全面的为大家介绍QQ图的原理以及自己手写函数实现......

  8. 详解如何使用Pytest进行自动化测试

    为什么需要自动化测试自动化测试有很多优点,但这里有3个主要的点可重用性:不需要总是编写新的脚本,除非必要,即使是新的操作系统版本也不需要编写脚本。可靠性:人容易出错,机器不太可能。当运行不能跳过的重复步骤/测试时,速度会更快。全天运行:您可以在任何时间或远程启动测试。夜间运行正在测试你的软件,即使是......

  9. python实现求纯色彩图像的边框

    本文实例为大家分享了python实现求纯色彩图像的边框,供大家参考,具体内容如下先上效果图,这里显示有点色差, 实际数值是纯色的, 而不是混色的.放大局部细节看是这样的原图是下面这样的这个算法最大的特点是保留原始像素的数值, 而不是把边框统一变成白色.实现的算法也超级简单. 就是有点慢. 考虑到我这......

  10. python类属性学习深入讲解

    class MyClass():# 直接将属性定义在类中,这种属性称为 类属性# 类属性可以通过实列对象和类对象访问,但是只能通过类对象修改# 类属性都是用来保存一些公共的数据a = 10def __init__(self):# 可以直接将属性添加到实列对象中,此时这个属性称为实例属性# 实例属性只......

随机推荐

  1. Python3利用scapy局域网实现自动多线程arp扫描功能

    一、所需Python库from scapy.all import *import threading二、实现ip扫描1.获取c段ip地址在ARP()里面有ip地址,我们可以从里面提取出前3段出来ARP().show()然后通过从后查找最后一个.得到最后一段位数,然后总长度-最后一段长度就能取出前3段......

  2. 解决IDEA springboot"spring-boot-maven-plugin"报红问题

    使用环境项目环境:Idea 2020.2.3、 Maven 3.6.3 、springboot 2.1.4本人在创建springboot项目时spring-boot-maven-plugin 及Idea右侧Plugins划红,导致项目启动打包有问题。虽然项目能跑,但是后续开发中可能会出现不可预知的问......

  3. unity 如何使用文件流读取streamingassets下的资源

    目的:读取streamingassets下的文件中指定的一段字节已知:文件中的起始位置,和需要读取的长度1.android下读取1.1 不能直接使用C#的FileStream,读取失败var buffer = new byte[size];FileStream stream = File.OpenR......

  4. tcpdump抓包及tshark解包方法介绍

    tshark是wireshark的命令行工具,通过shell命令抓取、解析报文。tcpdump是Linux系统下的抓包工具。wireshark和tcpdump都共同使用 libpcap作为其底层抓包的库,tshark也可以抓取报文。有时候需要在linux系统或者ARM开发板中进行抓包,使用tcpdu......

  5. python 基于UDP协议套接字通信的实现

    一、UPD实现单用户通信服务端:'''from socket import *server=socket(AF_INET,SOCK_DGRAM)- 这里代指的是一种数据报协议,数据报协议指的就是udp协议(补充: 数据报就是自己utp协议中有自己的头,有自己的数据部分)server.bind('IP......

  6. .NET的并发编程(TPL编程)是什么?

    写在前面优秀软件的一个关键特征就是具有并发性。过去的几十年,我们可以进行并发编程,但是难度很大。以前,并发性软件的编写、调试和维护都很难,这导致很多开发人员为图省事放弃了并发编程。新版 .NET 中的程序库和语言特征,已经让并发编程变得简单多了。随着 Visual Studio 2012 的发布,微......

  7. C#中File和FileStream的简单介绍和用法

    前言在近期的工作过程中发现自己的基础比较薄弱,所以最近在恶补基础知识。下面就对我所学习的File类和FileStream进行简单的总结。1.首先先介绍File类和FileStream文件流1.1 File类,是一个静态类,支持对文件的基本操作,包括创建,拷贝,移动,删除和打开一个文件。File......

  8. 利用python做表格数据处理

    技术背景数据处理是一个当下非常热门的研究方向,通过对于大型实际场景中的数据进行建模,可以用于预测下一阶段可能出现的情况。比如我们有过去的2002年-2018年的黄金价格的数据:该数据来源于Gitee上的一个开源项目。其中包含有:时间、开盘价、收盘价、最高价、最低价、交易数以及成交额这么几个参数。假如......

  9. windows打包脚本出现 /bin/sh^M: 坏的解释器: 没有那个文件或目录 错误

    1.错误描述我在Windows 10 系统下打包dolphinscheduler,上传到centos7解压之后,执行脚本报如下错误:-bash: ./dolphinscheduler-daemon.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录^M是什么东东,为什么会有^M通过命......

  10. python urllib库的使用详解

    相关:urllib是python内置的http请求库,本文介绍urllib三个模块:请求模块urllib.request、异常处理模块urllib.error、url解析模块urllib.parse。1、请求模块:urllib.requestpython2import urllib2response......