文本文件

1.建立文件

Build_new_file.py
newfile=r'C:\Users\86176\Desktop\BOOK\1.txt'    #定义需要建立的文本文件和路径
b_new_file = open(newfile,'w')                  #用open函数定义一个新的文本文件
b_new_file.close()                              #用close()方法关闭新建的文件
print("%s成功建立!"%(newfile))

#C:\Users\86176\Desktop\BOOK\1.txt成功建立!

如果不关闭新建立的文本文件,则打开的文件对象一直留在内存中容易出现内存溢出等错误.

2.读写文件

rw_new_f
newfile=r'C:\Users\86176\Desktop\BOOK\1.txt'        #指定需要建立或打开的文本名称和路径
b_new_file = open(newfile,'w')                      #用w模式打开文件
t_n=b_new_file.write('I am mori')
b_new_file.close()
print("往文件里写入了%d字节内容"%(t_n))

b_new_file=open(newfile,'r+')            #以只读方式打开1.txt文件
tt=b_new_file.read()                    #用文件对象.read()方法读取内容
print(tt)
t_n=b_new_file.write('\n 是的,是我!')     #继续写入新内容
b_new_file.close()
print("往文件里写入了%d字节内容"%(t_n))
print(t_n)

# 往文件里写入了9字节内容
# I am mori
# 往文件里写入了8字节内容

连续用read()方法,write()方法操作文件

3.一次写入多行

nums=['one','two','three','four','five','six','seven']
t=open(r'C:\Users\86176\Desktop\BOOK\1.txt','a')
for get_one in nums:
    t.write(get_one+'\n')
t.close()
print('连续写入完成')

windows系统下一行结束\r\n unix系统下是\n Macintosh操作系统下是\r

4.读取

t=open(r'C:\Users\86176\Desktop\BOOK\1.txt','r')
dd=1
while dd:
    dd = t.readline()    #一次读一行
    print(dd)

t=open(r'C:\Users\86176\Desktop\BOOK\1.txt','r')
L_s=t.readlines()            #以列表格式读取多行
print(L_s)

5.连续读特定字节数量的内容

6.指定位置读内容

f=open(r'C:\Users\86176\Desktop\BOOK\1.txt','r')
print(f.readline(2))        #第一次读取文件头两个字节
print(f.readline())         #继续读取同一行剩余字节
print(f.read(4))            #继续读取4个字节
print(f.read(4))            #继续读取4个字节
print(f.tell())             #获取↑执行后的当前位置
print(f.read(1))            #继续读一个字节
print(f.tell())             #当前位置

#=======================执行结果
# on
# e
# 
# two
# 
# thre
# 14
# e
# 15

f.seek(offset[,whence])

f代表已打开的文件,seek()方法重新指定将要读写的当前位置.
offset参数设置位置的偏移量的字节数
whence参数可选,确定文件起计位置,
默认值为SEEK_SET(或0),代表从文件的开始位置+偏移量来确定当前位置
SEEK_CUR(或1),代表当前位置起计
SEEK_END代表从文件的结尾起计

在前面的基础下继续执行以下代码

f=open(r'C:\Users\86176\Desktop\BOOK\1.txt','w')
print(f.seek(17))
f.write('---')      #执行后打开文件发现其他内容都丢失,只能在第17字节处发现新写入的---

f.close()
posted @   17。  阅读(274)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示