1.Python操作txt文本

news2024/11/19 15:36:39

文章目录

  • 1.Python读取一个txt文件的内容并将其写入到另一个txt文件
  • 2.Python读取一个未知编码的文件并将其设置为指定编码格式
  • 3.Python实现txt文件中字符串的替换

1.Python读取一个txt文件的内容并将其写入到另一个txt文件

# -*- encoding:gb2312 -*-
import chardet

def read_write_txt(inputpath, outputpath):
    with open(
            inputpath,
            'rb',
    ) as file:     # rb: 以二进制格式打开一个文件用于只读。
        raw_data = file.read()   # 读出内容用到的是read函数。这个函数的工作原理是依靠一个指针来对内容进行访问的。read方法会用一个指针将文本内容从上到下扫面一遍并且将其输出到内存。扫描完后它的指针是停留在末尾处的。也就是说,如果我们想用read方法访问同一个文件两次,是不可行的。
        detected_encoding = chardet.detect(raw_data)['encoding']  # 返回文件的编码格式。
    with open(inputpath, 'r', encoding=detected_encoding) as infile:
        with open(outputpath, 'w', encoding=detected_encoding) as outfile:
            # # 第一种:读取所有行
            # data1 = infile.readlines()
            # print(data1)
            # # 输出:['好好学习\n', '天天向上\n', '我是一只鱼\n', '哈哈哈']

            # 第二种:每行分开读取
            data2 = []
            for line in infile:
                data_line = line.strip("\n")  # 去除首尾换行符
                data2.append(data_line)
            print(data2)
            # 输出:['好好学习', '天天向上', '我是一只鱼', '哈哈哈']

            # 写入方法
            for line in data2:
                # data = '' + '\t'.join(str(i) for i in line) + '\n'  # 用\t隔开
                data = '' + ''.join(str(i) for i in line) + '\n'  # 用空格隔开
                outfile.write(data)


if __name__ == "__main__":
    input_file = '1.txt'  # 待读取的文件
    output_file = 'ansi.txt' # 写入的文件
    read_write_txt(input_file, output_file)

待读入文件1.txt

image-20230831223220303

写入后的文件ansi.txt

image-20230831223259851

2.Python读取一个未知编码的文件并将其设置为指定编码格式

要在Python中读取一个未知编码的文件并将其设置为另一种编码格式,可以使用chardet模块来检测文件的编码格式,然后使用Python内置的编码库来进行转换。

使用该代码前需要安装chardet和codecs库

pip install chardet
pip install codecs

首先,你可以使用chardet模块来检测文件的编码格式。你可以使用以下代码来完成这个步骤:

# -*- encoding:gb2312 -*-
import chardet
import codecs
def save_as_specified_encoding(input_file, output_file, output_encoding):  #input_file为未知编码文件,output_file为编码后的文件,output_encoding为编码格式
    with open(
            input_file,
            'rb',
    ) as file:     # rb: 以二进制格式打开一个文件用于只读。
        raw_data = file.read()   # 读出内容用到的是read函数。这个函数的工作原理是依靠一个指针来对内容进行访问的。read方法会用一个指针将文本内容从上到下扫面一遍并且将其输出到内存。扫描完后它的指针是停留在末尾处的。也就是说,如果我们想用read方法访问同一个文件两次,是不可行的。
        detected_encoding = chardet.detect(raw_data)['encoding']  # 返回文件的编码格式。

    with codecs.open(input_file,
                     'r',
                     encoding=detected_encoding,
                     errors='ignore') as input_file:
        content = input_file.read()
   # codecs.open(filename, mode='r', encoding=None, errors='strict', buffering=1)  使用给定的 mode 打开已编码的文件并返回一个 StreamReaderWriter的实例,提供透明的编码/解码;与内置函数open类似。

    with codecs.open(output_file,
                     'w',
                     encoding=output_encoding,
                     errors='ignore') as output_file:
        output_file.write(content) 

    if __name__ == "__main__":
    input_file = '1.txt'   # 未知编码文件
    output_file = 'ansi.txt' # 编码后的文件
    output_encoding = 'ansi' # 设置的编码
    save_as_specified_encoding(input_file, output_file, output_encoding)

原始文件1.txt

image-20230831223540961

编码后的文件ansi.txt

image-20230831223559481

3.Python实现txt文件中字符串的替换

# -*- encoding:gb2312 -*-
def replace_txt(inputpath, outputpath):

    # 打开原始文件和目标文件
    with open(inputpath, 'r') as file:
        content = file.read()

    # 替换字符:和:
    new_content = content.replace(':', ' ')
    new_content = new_content.replace(':', ' ')
    # 将替换后的内容写入目标文件
    with open(outputpath, 'w') as file:
        file.write(new_content)


if __name__ == "__main__":
    input_path = 'ansi.txt'    # 待处理的txt文件
    output_path = 'result.txt'    # 替换字符后的txt文件
    replace_txt(input_path, output_path)

ansi文件(原始文件)

image-20230831223659814

result文件 (替换后的文件)

image-20230831223722894

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/955691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebSocket 协议及其使用案例

文章目录 前言一、初识 WebSocket 协议1.1 什么是 WebSocket 协议1.2 WebSocket 与 HTTP 的关系1.3 WebSocket 握手的过程1.4 WebSocket 解决了什么问题 二、WebSocket 数据帧格式2.1 WebSocket 数据帧格式图示2.2 各字段的详细说明 三、SpringBoot 项目中引入 WebSocket3.1 创…

Meta语言模型LLaMA解读:模型的下载部署与运行代码

文章目录 llama2体验地址模型下载下载步骤准备工作什么是Git LFS下载huggingface模型 模型运行代码 llama2 Meta最新语言模型LLaMA解读,LLaMA是Facebook AI Research团队于2023年发布的一种语言模型,这是一个基础语言模型的集合。 体验地址 体验地址 …

分布式锁实现一. 利用Mysql数据库update锁

文章目录 分布式锁1、什么是分布式锁:2、分布式锁应该具备哪些条件: 基于数据库的分布式锁代码传送代码运行 分布式锁 1、什么是分布式锁: 分布式锁,即分布式系统中的锁。在单体应用中我们通过锁解决的是控制共享资源访问的问题…

hp惠普光影精灵5笔记本HP Pavilion Gaming-15-dk0135tx原装出厂Win10系统

原厂系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、惠普电脑管家等预装程序 适用型号: 15-dk0011tx,15-dk0018tx,15-dk0019tx,15-dk0020tx,15-dk0021tx,15-dk0038tx 15-dk0039tx,15-dk0040tx,15-dk0041tx,15-dk0125tx,15-dk0126tx,15-dk0127tx 15-dk012…

Python Opencv实践 - 霍夫线检测(Hough Lines)

import cv2 as cv import numpy as np import matplotlib.pyplot as plt import randomimg cv.imread("../SampleImages/GreenBoard.jpg") print(img.shape) plt.imshow(img[:,:,::-1])#将图像转为二值图 gray cv.cvtColor(img, cv.COLOR_BGR2GRAY) plt.imshow(gra…

【【萌新的STM32学习25--- USART寄存器的介绍】】

萌新的STM32学习25- USART寄存器的介绍 STM32–USART寄存器介绍(F1) 控制寄存器1 (CR1) 位13: 使能USART UE 0: USART分频器和输出被禁止 1: USART模块使能 位12 : 配置8个数据位…

正中优配:股票xd什么意思

作为本钱市场中的重要一环,股票出资已经成为现代个人和组织出资的重要挑选之一。而在股票出资中,出资者常常会看到股票的价格上出现"xd"字样,这时候不少出资者就会疑问,这个"xd"到底是什么意思?对…

Java“牵手”1688整店商品API接口数据,通过店铺ID获取整店商品详情数据,1688店铺所有商品API申请指南

1688平台店铺所有商品数据接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取1688整店的商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、价格信息等详细信息 。 获取店铺所有商品接口API是一种用于获取电商平台上商品详…

骨传导耳机音质怎么样、十大公认音质好的骨传导耳机推荐

骨传导耳机的音质相比传统的耳塞式或耳罩式耳机会有所不同。下面是骨传导耳机音质和入耳式耳机音质的区别: 1、低频听感: 相对传统耳机而言,骨传导耳机的低频响应可能稍显不足。由于声音是通过振动传输到内耳,而不是通过直接振动…

Python 实战之ChatGPT + Python 实现全自动数据处理/可视化详解

本文目录 一、引言 二、成果演示——口述式数据可视化 三、远原理述 四、实现过程 (一)环境配置 (二)申请OpenAI账号 (一)调用ChatGPT API (二)设计AI身份,全自动处理数据…

基于食肉植物算法优化的BP神经网络(预测应用) - 附代码

基于食肉植物算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于食肉植物算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.食肉植物优化BP神经网络2.1 BP神经网络参数设置2.2 食肉植物算法应用 4.测试结果:5…

GPU编程(基于Python和CUDA)(二)——显示GPU信息

系列文章目录 GPU编程(基于Python和CUDA)(一)——零基础安装pycuda GPU编程(基于Python和CUDA)(二)——显示GPU信息 显示GPU信息 系列文章目录前言通过CUDA查看GPU信息使用pycuda查…

使用openpyxl来创建一个月的日程表

首先你心里要有一张表的样子,openpyxl才能帮你创建出其余的29张。 import openpyxl from openpyxl.styles import Alignment, Font import calendar from datetime import datework_path rXX\YY\ZZ\日报-九月.xlsxtry:workbook openpyxl.load_workbook(work_path…

The Annotated Transformer(Attention Is All You Need)

"Attention is All You Need"[1] 一文中提出的Transformer网络结构最近引起了很多人的关注。Transformer不仅能够明显地提升翻译质量,还为许多NLP任务提供了新的结构。虽然原文写得很清楚,但实际上大家普遍反映很难正确地实现。 所以我们为此…

不使用VH6501设备,通过VN1630等普通设备使用canConfigureBusOff函数进行busoff干扰测试

** 特别注意一下,使用这个函数需要你的vector驱动在9.6以上以及支持 ISO CAN FD. ** 函数canConfigureBusOff 可以通过脚本的形式产生bus off,而VH6501可以通过干扰bit位来产生bus off(使用CANoe Demo - CANDisturbanceMain进行Bus Off测试)。 对于函数canConfigureBusOf…

Cypress web自动化windows环境npm安装Cypress

前言 web技术已经进化了,web的测试技术最终还是跟上了脚步,新一代的web自动化技术出现了? Cypress可以对在浏览器中运行的任何东西进行快速、简单和可靠的测试。 官方地址https://www.cypress.io/,详细的文档介绍https://docs.cypress.io/g…

openGauss学习笔记-56 openGauss 高级特性-DCF

文章目录 openGauss学习笔记-56 openGauss 高级特性-DCF56.1 架构介绍56.2 功能介绍56.3 使用示例 openGauss学习笔记-56 openGauss 高级特性-DCF DCF全称是Distributed Consensus Framework,即分布式一致性共识框架。DCF实现了Paxos、Raft等解决分布式一致性问题典…

[SpringBoot3]远程访问@HttpExchange

六、远程访问HttpExchange[SpringBoot3] 远程访问是开发的常用技术,一个应用能够访问其他应用的功能。SpringBoot提供了多种远程访问的技术。基于HTTP协议的远程访问是最广泛的。SpringBoot中定义接口提供HTTP服务。生成的代理对象实现此接口,代理对象实…

C语言入门篇(九)

前言   本篇分享的是部分操作符的概念与用法,从经典例题入手,带你快速了解和掌握。   收录专栏:浅谈C语言 操作符详解下 10. 逗号表达式11. 下标引用、函数调用和结构成员12. 表达式求值12.1 隐士类型转换12.2 算术转换12.3 操作符的属性…

海面漂浮物垃圾识别检测算法

海面漂浮物垃圾识别检测算法通过yolo系列网络框架模型算法,海面漂浮物垃圾识别检测算法一旦识别到海面的漂浮物垃圾,海面漂浮物垃圾识别检测算法立即发出预警信号。目标检测架构分为两种,一种是two-stage,一种是one-stage&#xf…