ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python高级(四):文件读写

2022-07-31 20:35:05  阅读:146  来源: 互联网

标签:文件 sheet 读取 python 读写 写入 高级 json open


读写txt文件

读文件

  1. 以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:
>>> f = open('/Users/michael/test.txt', 'r')
  1. 调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示:
>>> f.read()
'Hello, world!'
  1. 调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:
>>> f.close()
  1. Python引入了with语句来自动帮我们调用close()方法:
    try ... finally的作用一样的,但是代码更佳简洁,并且不必调用f.close()方法。
with open('/path/to/file', 'r') as f:
    print(f.read())
  1. 如果文件很小,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的基本用法

  1. 打开excel
import xlrd

workbook = xlrd.open_workbook('./test.xlsx')
  1. 获取excel文件的sheet
# 方式一、用sheet名字
sheet = workbook.sheet_by_name('Sheet1') 
# 方式二、用索引
sheet = workbook.sheet_by_index(0)#根据索引顺序获取sheet
  1. 获取sheet的最大行数和列数
rows = sheet_name.nrows # 获取行数
cols = sheet_name.ncols # 获取列数
  1. 获取sheet的数据
# 方式一、获取指定行或列的全部数据
sheet.col_values(0) # 获取第一列的全部数据
sheet.row_values(0) # 获取第一行的全部数据
# 方式二、获取指定的单元格数据
sheet.cell_value(0, 1) #获取第1列第2行的数据

写EXCEL-xlwt的基本用法

  1. 打开一个excel
import xlwt
book = xlwt.Workbook()#新建一个excel

  1. 新增一个sheet
sheet = book.add_sheet('case1_sheet')#添加一个sheet页

  1. 在sheet中写入值
 sheet.write(row,col,value)# 在某行某列中写入值

  1. 保存excel
    注:一定要保存
book.save('test.xls')#保存到当前目录下

读写JSON文件

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
python操作json文件通过了两种方法:

  1. load():用于读取json文件
  2. 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值

标签:文件,sheet,读取,python,读写,写入,高级,json,open
来源: https://www.cnblogs.com/sophia12138/p/16537990.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有