python高级(四):文件读写
2022/8/1 1:22:46
本文主要是介绍python高级(四):文件读写,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
读写txt文件
读文件
- 以读文件的模式打开一个文件对象,使用Python内置的
open()
函数,传入文件名和标示符:
>>> f = open('/Users/michael/test.txt', 'r')
- 调用
read()
方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str
对象表示:
>>> f.read() 'Hello, world!'
- 调用
close()
方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:
>>> f.close()
- Python引入了
with
语句来自动帮我们调用close()
方法:
和try ... finally
的作用一样的,但是代码更佳简洁,并且不必调用f.close()
方法。
with open('/path/to/file', 'r') as f: print(f.read())
- 如果文件很小,
read()
一次性读取最方便;如果不能确定文件大小,反复调用read(size)
比较保险;如果是配置文件,调用readlines()
最方便:
for line in f.readlines(): print(line.strip()) # 把末尾的'\n'删掉
读取二进制文件
>>> f = open('/Users/michael/test.jpg', 'rb') >>> f.read() b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节
读取非UTF-8文件
读取非UTF-8编码的文本文件,需要给open()
函数传入encoding
参数,例如,读取GBK编码的文件:
>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk') >>> f.read() '测试'
遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError
,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()
函数还接收一个errors
参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:
>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
写文件
以'w'
模式写入文件
以'a'
追加(append)模式写入
>>> f = open('/Users/michael/test.txt', 'w') >>> f.write('Hello, world!') >>> f.close()
你可以反复调用write()
来写入文件,但是务必要调用f.close()
来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()
方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()
的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用with
语句来得保险:
with open('/Users/michael/test.txt', 'w') as f: f.write('Hello, world!')
读取txt文件全部内容,并且以列表形式返回
文件内容如下
项目名称,版本号 导体结构检查,V1.0 导体结构及单丝直径检查,V1.0
希望转成以下形式[[导体结构检查,V1.0],[导体结构及单丝直径检查,V1.0]]
代码如下
line_list=[] file_list=[] def read_list(): f = open(path, "r") lines = f.readlines() for line in lines: line_list = line.strip().split(',') file_list.append(line_list) return file_list
读写EXCEl文件
- xlrd:读EXCEL
- xlwt:写EXCEL
注意
xlrd和xlwt处理的是xls文件,单个sheet最大行数是65535,如果有更大需要的,建议使用openpyxl函数,最大行数达到1048576。
如果数据量超过65535就会遇到:ValueError: row index was 65536, not allowed by .xls format
读EXCEL-xlrd的基本用法
- 打开excel
import xlrd workbook = xlrd.open_workbook('./test.xlsx')
- 获取excel文件的sheet
# 方式一、用sheet名字 sheet = workbook.sheet_by_name('Sheet1') # 方式二、用索引 sheet = workbook.sheet_by_index(0)#根据索引顺序获取sheet
- 获取sheet的最大行数和列数
rows = sheet_name.nrows # 获取行数 cols = sheet_name.ncols # 获取列数
- 获取sheet的数据
# 方式一、获取指定行或列的全部数据 sheet.col_values(0) # 获取第一列的全部数据 sheet.row_values(0) # 获取第一行的全部数据 # 方式二、获取指定的单元格数据 sheet.cell_value(0, 1) #获取第1列第2行的数据
写EXCEL-xlwt的基本用法
- 打开一个excel
import xlwt book = xlwt.Workbook()#新建一个excel
- 新增一个sheet
sheet = book.add_sheet('case1_sheet')#添加一个sheet页
- 在sheet中写入值
sheet.write(row,col,value)# 在某行某列中写入值
- 保存excel
注:一定要保存
book.save('test.xls')#保存到当前目录下
读写JSON文件
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
python操作json文件通过了两种方法:
- load():用于读取json文件
- dump():用于写入json
读取JSON文件
# 读取JSON文件,文件内容: [{'a': 'b'}] import json with open('./2.json', 'r', encoding='utf-8')as fp: json_data = json.load(fp) print("文件数据:", json_data) print(type(json_data))
文件数据: [{'a': 'b'}]
<class 'list'>
将字典数据写入到JSON文件中
# 将字典数据写入到JSON文件中 dict1 = {"name": "sxy", "sex": "男"} with open('./1.josn', 'a', encoding='utf-8')as fp: json.dump(dict1, fp, ensure_ascii=False) # ensure_ascii=False,表示返回值可以包含非ascii值
这篇关于python高级(四):文件读写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程
- 2024-12-18Python量化入门教程:轻松掌握量化交易基础知识