文件

打开文件:

打开某个具体的文件,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个字符,会造成乱码
    

总结:

打开文件

读写

关闭

原文地址:https://www.cnblogs.com/shaozheng/p/11421998.html