1.语法示例
file_path = r'C:\Users\tcdcr\Desktop\新建文本文档.txt'#绝对路径
with open(file_path,"r",encoding="utf-8") as f:
#des = f.readlines();
#print(des)
for line in f.readlines():
print(line);
打开方式:r-->只读;w-->只写;r+ -->读写;w+ -->读写;a -->追加写;a+ -->追加读写;
路径中含有\r \n这样的转义字符,解决方法:
path1 = r"C:\Users\tcdcr\Desktop\新建文本文档.txt"#加r
path2 = "C:\\Users\\tcdcr\\Desktop\\新建文本文档.txt"#变为双反斜杠\\
path3 = "C:/Users/tcdcr/Desktop/新建文本文档.txt"#变为正斜杠
f.read(size) #读取size的字符,一个汉字占2个字符。
f.read() #读取所有字符,直接打印的结果:
这是什么
是小红帽
f.readline(size)#读取当前行的size的字符,读完之后自动定位到下一行,可以使用while循环来读。
f.readlines()#读取所有的字符,直接打印的结果是:['\ufeff这是什么\n', '是小红帽']
搞不清楚了,还是用下面这个吧,一行行的读:
for line in f.readlines():
print('行数据:'+line);
输出:
行数据:这是什么
行数据:是小红帽
2.seek()
seek() 方法用于移动文件读取指针到指定位置。
语法:fileObject.seek(offset[, whence])
参数:
offset 开始的偏移量,需要移动偏移的字节数
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
示例:
def tail(filepath):
with open(filepath,'r+',encoding='utf-8') as f:
print(f.readline())
f.seek(6,0)#偏移6字节,一个汉字 utf-8
print(f.readline())
输出:
这是什么
是什么
3.读取文件中的内容的时候会出现 \ufeff,需要编码再解码
解决方法:line.encode('utf-8').decode('utf-8-sig')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2016-05-23 Linq操作DataTable