python file常用方法

tfile = open('./material/file_txt_xmode.txt', mode='a+', encoding='utf-8')
# mode 主要是r , w , + , a , x
# 其中+需要搭配使用:r+, w+ 都是可读可写
# r模式 若文件不存在,则会报错;
# w模式 若文件存在,则清空从头开始写入;若文件不存在 则新建文件----带w的模式,一旦使用open创建对象后,对应文件里的内容就会被清空
# x只写模式 若文件存在,则会报错
# a模式 若文件存在,则从末尾开始追加写入;若文件不存在 则新建文件

# 读取全部
t = tfile.read()
# # 读取前n个
t1 = tfile.read(10)
# 从当前位置开始读取,读整行---也就是说如果当前位置不是开头,是第11个位置开始读取,就从11读到改行末尾  注意\n字符也会读取
l = tfile.readline()
# 从当前位置开始读取,读所在行的n位
l1 =tfile.readline(9)
# 从当前位置开始读取所有行,返回值为list
ls = tfile.readlines()
# # 读文件  文件内容:123好样的
t = tfile.read()
print(t)   # 输出 1,指针移动到下一位
print(tfile.tell())  # 输出当前指针位置,注意:在utf-8编码下,中文占三字节
# 移动指针到指定位置
tfile.seek(3) # 指针移动到开头,注意,因为中文占三字节,所以3到5这三个位置都是【好】,使用3是正确的,使用4和5就会报错
print(tfile.read())   # 如果不使用seek方法,此时输出结果为23;使用seek(0)移动到开头,输出结果为123

# 该模式 会自动调用close方法
with open('./material/file_txt_xmode.txt', mode='r+', encoding='utf-8') as f:
    f.read(2) # 文件内容:123456789   此次读取12
    # 截取字段  对于文件来说,截取后只剩前n个 ,也就是说文件内容:12345
    f.truncate(5)
    print(f.read()) # 虽然已经截取了,但是这里读取还是在之前read方法之后的位置开始读取“原来文件内容”:  输出:3456789


with open('./material/file_txt_xmode.txt', mode='r+', encoding='utf-8') as f:
    f.read(2) # 文件内容:123456789   此次读取12
    # 截取字段  对于文件来说,截取后只剩前n个 ,也就是说文件内容:1234...n
    f.truncate(5)
    f.seek(0) # 将指针定位到开头
    print(f.read()) # 这个输出结果和上面不一致了.此时读取的是截取后的内容且从开头开始  输出:12345

# txt和py文件都可以用file的read方法读取,docx和xlsx不行,需要引入其他包
# xlsx文件读取内容
from openpyxl import load_workbook

wb = load_workbook('./material/file_excel.xlsx')

sheets = wb.sheetnames
for sheet in sheets:
    print(wb[sheet])
    for i in wb[sheet].values:
        print(i)

# docx文件读取内容
from docx import Document

document = Document('./material/file_word.docx')
# print(document)
for i in document.paragraphs:
    print(i.text)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值