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)