Python读取文件基本方法
在日常开发过程中,经常遇到需要读取配置文件,这边就涉及到一个文本读取的方法。
这篇文章主要以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读取文件基本方法的更多相关文章
- python读取文件的方法
一. 通过readline 逐行读取: #--encoding:utf-8 with open("ha.conf","r",encoding='utf-8') ...
- python读取文件内容方法
1) readline 每次读一行,返回序列 2) readlines 一次全部读出,返回序列 3) numpy 的genfromtxt,返回为np的矩阵格式 import numpy as np f ...
- python读取文件使用相对路径的方法
场景描述: python传统的读取文件的方法,通过读取文件所在目录来读取文件,这样出现的问题是,如果文件变更了存储路径,那么就会读取失败导致报错 如下方脚本 def stepb(a):#写入txt f ...
- 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 ...
- Python 读取文件中unicode编码转成中文显示问题
Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...
- python读取文件首行和最后一行
python读取文件最后一行两种方式 1)常规方法:从前往后依次读取 步骤:open打开文件. 读取文件,把文件所有行读入内存. 遍历所有行,提取指定行的数据. 优点:简单,方便 缺点:当文件大了以后 ...
- 【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 ...
- Python OS 文件/目录方法
Python OS 文件/目录方法 os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: 序号 方法及描述 1 os.access(path, mode) 检验权限模式 2 os. ...
- Python读取文件编码及内容
Python读取文件编码及内容 最近做一个项目,需要读取文件内容,但是文件的编码方式有可能都不一样.有的使用GBK,有的使用UTF8.所以在不正确读取的时候会出现如下错误: UnicodeDecode ...
随机推荐
- fastjson对String、JSONObject、JSONArray相互转换
String——>>>JSONArray String st = "[{name:Tim,age:25,sex:male},{name:Tom,age:28,sex:mal ...
- mysql HAVING用法
原文链接:https://www.cnblogs.com/mr-wuxiansheng/p/11188733.html having字句可以让我们筛选分组之后的各种数据,where字句在聚合前先筛选记 ...
- 0.1---selenium+java自动化测试进阶02----项目实战之登录代码重构
一.测试登录功能实现 以慕课网的登录为例,分析登录的功能需求,编写测试用例,找到要定位的元素以及需要的操作,编写登录功能的测试代码.代码实现如下: public static void main(St ...
- 在IntelliJ IDEA中注释使用的说明
/** * @author 标明该类模块的开发作者 * @version 标明该类模块的版本 * @see 参开转向,也就是相关的主题 * @param 对方法中的某些参数进行说明 * @return ...
- cb40a_c++_STL_算法_交换swap_ranges
cb40a_c++_STL_算法_交换swap_rangesswap_ranges(b,e,b2);如果两个容器的数据数量不一致时,只交换一部分数据,a里面3个,b里面5个,则只会交换3个,b里面还有 ...
- 初见NVelocity模板引擎
//using NVelocity.App; //using NVelocity; //using NVelocity.Runtime; VelocityEngine vltEngine = new ...
- 四分位数与pandas中的quantile函数
四分位数与pandas中的quantile函数 1.分位数概念 统计学上的有分位数这个概念,一般用p来表示.原则上p是可以取0到1之间的任意值的.但是有一个四分位数是p分位数中较为有名的. 所谓四分位 ...
- selenium(9)- Xpath的详细使用
什么是Xpath 官方:XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航 [XPath 使用路径表达式来选取 XML 文档中的节点或者节点集 ...
- SLS编写规范
SLS编写规范 规范要点说明 首先,状态的执行不可回滚,执行完了就是执行完了,并不会中断回滚,其次,状态的执行,可以反复执行,也就是说一个状态文件,可以多次来进行调用. 在编写状态文件过程中,有以下几 ...
- python list遍历方法汇总
list=['a','b','c','d','e'] #方法1: print('#方法1:') #i值为列表的item,list为列表名,因此i值即为列表元素 for i in list: #list ...