在日常开发过程中,经常遇到需要读取配置文件,这边就涉及到一个文本读取的方法。

这篇文章主要以Python读取文本的基础方法为本,添加读取整篇文本返回字符串,读取键值对返回字典,以及读取各个项返回列表的应用。至于读取xml文件或者加密文件的其他方法这里不做介绍,后续会详细讲解。

这里直接上模块案例,可以看到 此类中含有3个读取文件的方法,且返回值分别为str,dict,list,分别应用于不同的场景下。其中读取方式都是一样的,分享这个类的目的就是为了让熟手们不用再在代码中写啦,直接引用这个包就行啦!

代码中也融合了一些之前学习的知识点,包括默认参数,冒号与箭头的含义等~

  #!/usr/bin/env python3
# -*- coding: utf-8 -*- """
根据不同的读取文件的目的,返回不同的数据类型
可以返回str, dict, list
""" class FileOperation(object): def __init__(self, filepath, filename):
self.files = filepath + filename ''' 将全文本读取出来返回一个字符串,并包含各种转行符 '''
def readFile(self) -> str:
res = ''
f = open(self.files, 'r', encoding='utf-8')
for line in f:
res += line
f.close()
return res ''' 针对键值对形式的文本,逐个读取存入到字典中,返回一个字典类型数据,常用于配置文件中 '''
def readFile2Dict(self, sp_char = '=') -> dict:
res = {}
f = open(self.files, 'r', encoding='utf-8')
for line in f:
(k,v) = line.replace('\n', '').replace('\r', '').split(sp_char)
res[k] = v
f.close()
return res ''' 针对需要逐行放入列表中的文本,返回一个列表类型 '''
def readFile2List(self) -> list:
res = []
f = open(self.files, 'r', encoding='utf-8')
for line in f:
res.append(line.replace('\n', '').replace('\r', ''))
f.close()
return res if __name__ == '__main__' :
import os fo = FileOperation(os.getcwd() + '\\temp\\', 'model.html')
res = fo.readFile()
print(res) fo = FileOperation(os.getcwd() + '\\temp\\', 'test.txt')
res = fo.readFile2Dict('|')
print(res) fo = FileOperation(os.getcwd() + '\\temp\\', 'test.txt')
res = fo.readFile2List()
print(res)

今天就分享这个简单的案例,如有其他场景需求,评论或私信我,都会加以改进,分享到这里的,另外特殊文件的读取和写入,我会在后期也一并分享,关注我,后期整理不能少!

或者关注我头条号,更多内容等你来 https://www.toutiao.com/c/user/3792525494/#mid=1651984111360013

Python读取文件基本方法的更多相关文章

  1. python读取文件的方法

    一. 通过readline 逐行读取: #--encoding:utf-8 with open("ha.conf","r",encoding='utf-8') ...

  2. python读取文件内容方法

    1) readline 每次读一行,返回序列 2) readlines 一次全部读出,返回序列 3) numpy 的genfromtxt,返回为np的矩阵格式 import numpy as np f ...

  3. python读取文件使用相对路径的方法

    场景描述: python传统的读取文件的方法,通过读取文件所在目录来读取文件,这样出现的问题是,如果文件变更了存储路径,那么就会读取失败导致报错 如下方脚本 def stepb(a):#写入txt f ...

  4. python 读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multib

    python 读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multib ...

  5. Python 读取文件中unicode编码转成中文显示问题

    Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...

  6. python读取文件首行和最后一行

    python读取文件最后一行两种方式 1)常规方法:从前往后依次读取 步骤:open打开文件. 读取文件,把文件所有行读入内存. 遍历所有行,提取指定行的数据. 优点:简单,方便 缺点:当文件大了以后 ...

  7. 【python】python读取文件报错UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position 2: illegal multibyte sequence

    python读取文件报错UnicodeDecodeError: 'gbk' codec can't decode byte 0xac in position 2: illegal multibyte ...

  8. Python OS 文件/目录方法

    Python OS 文件/目录方法 os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: 序号 方法及描述 1 os.access(path, mode) 检验权限模式 2 os. ...

  9. Python读取文件编码及内容

    Python读取文件编码及内容 最近做一个项目,需要读取文件内容,但是文件的编码方式有可能都不一样.有的使用GBK,有的使用UTF8.所以在不正确读取的时候会出现如下错误: UnicodeDecode ...

随机推荐

  1. Visible Lattice Points(规律题)【数学规律】

    Visible Lattice Points 题目链接(点击) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9031   ...

  2. LaTeX实时预览中文

    参考资料:http://blog.sina.com.cn/s/blog_6ea58f530101aizw.html 功夫不负有心人,终于在经过艰苦卓绝的寻找之后,让我的Texpad实现了实时预览.此时 ...

  3. YII2.0安装教程,数据库配置前后台

    1.首先下载yii-advanced-app-2.0.6.tgz 我本地服务用的是Apache 2.解压到E:\wamp\www\yii2目录下面将目录advanced下所有文件剪切到 E:\wamp ...

  4. ASP.NET Core 对Controller进行单元测试

    单元测试对我们的代码质量非常重要.很多同学都会对业务逻辑或者工具方法写测试用例,但是往往忽略了对Controller层写单元测试.我所在的公司没见过一个对Controller写过测试的.今天来演示下如 ...

  5. python 函数式编程 高阶函数 装饰器

    # -*- coding:gb2312 -*- #coding=utf-8 # 高阶函数 import math def is_sqr(x): y = int(math.sqrt(x)) return ...

  6. Golang简易入门教程——面向对象篇

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第9篇文章,我们一起来看看golang当中的面向对象的部分. 在现在高级语言当中,面向对象几乎是不可或缺也是一门语言 ...

  7. int与Integer的区别(基本类型与复杂类型的对比)转

    基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型. Java中的简单类型从概念上分为四种:实数.整数.字符.布尔值.但是有一点需要说明的是,Java里面只有八种原始类型,其列表如下: 实数: ...

  8. TCP端口扫描类型-隐蔽扫描和僵尸扫描

    TCP扫描有三种类型:全连接扫描,隐蔽扫描,僵尸扫描.全连接扫描无须赘述. 隐蔽扫描:发送完SYN数据包以及收到SYN/ACK数据包后不再发送SCK数据包,由于没有建立完整的TCP连接,所以在目标主机 ...

  9. Code Walkthroughs Table API

    上级:https://www.cnblogs.com/hackerxiaoyon/p/12747387.html Table API Table api 有批量的api和流实时的api.通常很容易进行 ...

  10. 在linux裸机部署springBoot项目

    一.项目创建及打包 创建项目,打jar包 二.安装JDK 1.在/usr目录下床架java文件夹,将 2.下载jdk8,并上传linux服务器(/usr/java) 下载地址:https://www. ...