打开文件:
打开某个具体的文件,open()方法内写入文件路径。
open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt')
read模式打开文件
f=open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt', mode='r')
data = f.read()
print(data)
f.close()
del f 只是回收变量f
读取文件内容,向操作系统发起读请求,会被操作系统转成具体的硬盘操作,将内容由硬盘读入内存
由于Python的垃圾回收机制只回收引用计数为0的变量,但是打开文件还占用操作系统的资源,所以我们需要回收操作系统的资源资源
写入数据:
# write模式打开文件
f = open(r'/Users/mac/desktop/jupyter/pythonCourseware/32.txt', mode='w')
f.write("""name = 'nick'
pwd = '123'""")
f.close()
-
r+t: 可读、可写
-
w+t: 可写、可读
a+t: 可追加、可读
with open('36r.txt', 'r+t', encoding='utf-8') as fr: fr.readline() fr.write('nick 真衰呀') # 写在文件的最后一行
硬盘上从来没有修改一说,硬盘上只有覆盖,即新内容覆盖新内容
runcate(n): truncate(n)是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate()要在r+或a或a+等模式下测试效果。它的参照物永远是文件头。并且truncate()不加参数,相当于清空文件。
# truncate() with open('36r.txt', 'ab') as fr: fr.truncate(2) # 截断2个字节后的所有字符,如果3个字节一个字符,只能截断2/3个字符,还会遗留1/3个字符,会造成乱码