第十五篇 文件操作延申

第十五篇 文件操作延申

1 绝对路径和相对路径

绝对路径

  • Windows系统的绝对路径从盘符(例如:C: 或者 D: 等等)开始写一个完整的路径
  • Macos系统从根目录(/Users)开始写一个完整的路径

相对路径

  • 相当于当前执行文件所在的文件夹开始找
file = open('txt') #txt与该.md文档路径位置相同

2 文件打开模式

  • 文件操作的基础模式有三种(默认的操作模式为r模式)

    • r 模式为 read():只读模式,文件不存在时会报错。注意:read()读取文件指针会跑到文件的末端,如果再一次读取,读取的将是空格
    file = open('txt','r')
    data1 = file.read()
    data2 = file.read()
    print(data1)
    print(data2)  #这次读取的内容是空白的
    

    ###由于f.read()一次性读取文件的所有内容,如果文件非常大的话,可能会造成内存爆掉,即电脑卡死。因此可以使用.readline()/.readlines()读取文件内容

    readable()可以判断文件是否可读

    file = open('txt','rt') #‘rt’为读取的文件类型是text
    print(f.readable())     #判断文件是否可读,返回值是True or False
    '''结果是:True'''
    data1 = file.readline()   
    data2 = file.readlines()
    '''注意:如果文件中没有分行,readline()函数任然会将全部内容读取完,只有当文件中有分行时,才会分段输出。如果readlines()先输出,即使文件内的信息有分行也会全部输出'''
    print(data1)
    print(data2)
    
    • w 模式为 write():只能写,不能读,而且写的时候会覆盖文件打开之前的内容
    ###可以用readable()函数验证一下
    file = open('txt','w') 
    print(f.readable())  
    '''结果是:False'''
    
    • a 模式为 append():追加。文件存在,则在文件的末端写入内容;文件不存在的时候会创建文件后写入内容
    ###可以用readable()函数验证一下是否可读
    file = open('txt','a') 
    print(f.readable())  
    '''结果是:False'''
    
  • 文件读写内容的格式有两种(默认的读写内容的模式为wb/rb/ab模式)

    注意:t 、b这两种模式均不能单独使用,都需要与r/w/a之一连用

    • b 模式(bytes):通用模式,因为所有的文件在硬盘中都是以二进制的形式存储的,所以可以通用。注意:b模式读写文件,一定不能加上encoding参数,因为二进制无法再编码,如果加了则会报错
    file = open(r'B:pythonstudyday4	xt',mode='wb') '''一定不能写encoding的参数'''
    file.write('data')
    file.close()
    
    • t模式(text):文本模式,用于打开txt格式的文件
    file = open(r'B:pythonstudyday4	xt',mode='rt',encoding='utf-8')
    data = file.read()
    print(data)
    file.close
    

3 with 管理文件操作上下文

## 之前我们使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用。但是其实我们可以更方便的打开文件,即Python提供的上下文管理工具——with open()

with open('B:pythonstudyday4\txt','r',encoding='GBK') as file:
    print(file.read())
    '''这样我们就不需要手动关闭文件了'''

### with open()方法不仅提供自动释放操作系统占用的方法,并且with open可以使用逗号分隔,一次性打开多个文件,实现文件的快速拷贝

with open('txt','rb') as file,
	open('txt1','wb') as file1:
        file1.write(file.read())
with open('txt1','rb') as file1:
    print(file.read())

提醒:在复制路径时,很容易碰到 、 、 这些转义字符,我们可以在输出它们的时候加上 r 或者在斜杠旁边加一道斜杠(反斜杠)来保证它们原样输出

file = open(r'B:pythonstudyday4	xt',mode='wb')
#或者写成
file = open(r'B:pythonstudyday4\txt',mode='wb')
#这样都可以避免出现报错

原文地址:https://www.cnblogs.com/itboy-newking/p/10853674.html