Python(10)--文件读写/模块制作与发布

本文详细介绍了Python中的文件读写操作,包括打开、关闭、读取和写入文件的多种模式。此外,还讲解了如何使用with语句进行上下文管理,以及文件定位的tell()和seek()方法。接着,文章探讨了Python模块的导入,包括import和from...import的区别,并展示了模块的制作、发布和安装过程。最后,提到了os模块的文件操作以及time和datetime模块的时间处理功能。
摘要由CSDN通过智能技术生成

文件读写

文件操作一般步骤:

打开文件

读/写文件

保存文件

关闭文件

【在python中操作文件也是遵循这几个步骤的】

打开文件

在Python中打开文件使用open函数,可以打开一个已经存在的文件,或者创建一个新文件

语法格式: open('文件名称','打开模式’)

示例:

*规定encode有两种:打开的行指明或者写入行指明(见如下代码)

 *每个项目的虚拟环境不同,安装的包都不同,不需要都安装

文件的操作
# 打开文件 open
# 默认的编码是gbk 这个是中文编码,最好的习惯呢就是我们再打开一个文件的时候
# 给它指定一个编码类型
# fobj=open('./Test.txt','w',encoding='utf-8')#w的打开模式:打开或没有的时候自动创建#fobj保存打开后返回的对象
# # 开始操作 读/写操作
# fobj.write('在苍茫的大海上')#里边写内容,这时后内容是在内存中并没有到文件中,close后才到了文件中
# fobj.write('狂风卷积着乌云')#w这种模式每次打开都会重新创建,如果是第二次运行,会覆盖掉之前的,可以尝试把这行注释掉再运行下一行,查看文件内容,发现已经被覆盖
# fobj.write('在乌云和大海之间\r\n')
# fobj.write('海燕像黑色的闪电\r\n')
# fobj.close()

# 以二进制的形式去写数据,改变写的方式只和打开的模式有关系
# fobj=open('Test_1.txt','wb') #str-->bytes
# fobj.write('在乌云和大海之间'.encode('utf-8'))#这样规定编码也可以
# fobj.close()
# fobj=open('Test.txt','a') #用于追加数据,用a模式,不能再规定encoding为utf-8了,会把字符串形式转化为字节
# fobj.write('在乌云和大海之间\r\n')#\r\n用于换行
# fobj.write('海燕像黑色的闪电\r\n')
# fobj.close()

fobj=open('Test.txt','ab') #  a  用于追加数据
fobj.write('在苍茫的大海上', encode('utf-8')#以ab模式时,就要规定encode的形式是二进制,因为ab模式是以二进制形式存储
fobj.write('狂风卷积着乌云')
fobj.write('在乌云和大海之间\n')
fobj.write('海燕像黑色的闪电\n')
fobj.write('今天我诗兴大发\n')
fobj.write('发感觉咋样呢\n')
fobj.close()

fobj=open('Test.txt','a') #  a  用于追加数据
fobj.write('在苍茫的大海上')
fobj.write('狂风卷积着乌云')
fobj.write('在乌云和大海之间\n')
fobj.write('海燕像黑色的闪电\n')
fobj.write('今天我诗兴大发\n')
fobj.write('发感觉咋样呢\n')
fobj.close()

 文件打开模式

 *实际操作中a,w模式比较常用

关闭文件

语法格式: close() 方法关闭文件

示例:

注意: 打开一个文件之后,一定要关闭,否则后面无法继续操作这个文件。

写文件

写入文件 write() 方法,参数就是需要写入的内容。

writelines() 可传一个可迭代对象

 读文件

读取文件 read() ,将文件的内容全部读取出来。

读取指定字符个数 read(num)传入一个数字做参数,表示读取指定字符个数

readlines() 按行读取,一次性读取所有内容,返回一个列表,每一行内容作为一个元素。 

 readline() 按行读取,但是一次只读取一行。

with 上下文管理

with 语句,不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭打开的文件句柄。(自动释放对象,防止忘记关闭对象)

示例:

# 读数据操作

f=open('Test.txt','r')
data=f.read() #read函数是读取所有的数据
print(data)
print(data.decode('gbk'))
# print(f.read(12))#read可以指定读几个数据
# # print(f.read())##读完12个,还可以再次使用全读,但光标已经在12个后了,所以读的是12个以后的数据
# print(f.readline()) #读一行数据,readline是一行一行的读的,读所有行是readlinds,返回的是列表数据,一行是一个列表
# print(f.readlines(1))#读一行数据
# f.close()  #文件对象关闭掉
# with上下文管理对象
# 优点 自动释放打开关联的对象
with open('Test.txt','a') as f:
    # print(f.read())
    f.write('我觉得python非常的好学\n')

f=open('Test.txt','rb')#二进制形式读
data=f.read() #读取所有的数据
print(data)#没解码的时候
print(data.decode('gbk'))#将直接读取的二进制数据变为字符串形式,用utf-8会报错,因为写的时候就是gbk(默认gbk,可以用encode规定)
# print(f.read(12))
# # print(f.read())
# print(f.readline()) #读一行数据
# print(f.readlines(1))
# f.close()  #文件对象关闭掉,数据量过大时不关闭会造成文件对象泄露
# with上下文管理对象
# 优点 自动释放打开关联的对象
with open('Test.txt','a&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值