python-文件操做

基本的文件操做

什么是文件

文件是操做系统为用户或应用程序提供的虚拟的单位,文件的操做的核心就是:读/写。缓存

为何要有文件

数据都保存在硬盘中,咱们须要读写数据,就要去操做硬盘,而经过操做文件咱们就能够操做硬盘。app

python 如何用文件

从硬盘中读取数据

python中使用open(‘文件路径’)方法能够打开某个具体的文件,用open()打开文件后,咱们还须要手动释放文件对操做系统的占用。工具

f = open(r'C:\Users\raynd\Desktop\test.txt',encoding='gbk')  # r 表示后面的特殊字符,都是普通字符。 encoding='gbk',表明这个文件是用gbk编码方式来打开,咱们须要记住,用什么编码方式写的,就用什么编码方式打开。
print(f.read())
f.close() # 若是使用del f ,这个是删除f这个变量名的内存占用,并无关闭文件在操做系统中的占用;而是用f.close后,不只删除了变量名f,而且也关闭了文件,这个时候文件对于操做系统来说是关闭状态的
1. 打开文件的那一瞬间是在操做硬盘和内存
2. python3能操控硬盘和内存吗?必定不能,由于他是应用程序
3. 你看到的python3打开文件并操控,都是基于操做系统的
4. 而后你只是使用了del f,只是在删除f这个变量名的内存占用
5. 可是咱们历来都没有告诉操做系统关闭文件
6. 因此咱们必须使用f.close()关闭文件

若是使用文件(打开文件的步骤)

  1. 打开文件
  2. 读写数据
  3. 保存
  4. 关闭文件

绝对路径和相对路径

  • 绝对路径:从根目录开始,一直到须要的文件路径。编码

    ‘C:\Users\raynd\Desktop\test.txt’操作系统

  • 相对路径:从当前文件夹开始,到须要的文件路径,只须要输入文件路径,要打开的文件必须和运行的py文件必须得在一个文件夹下。code

    ‘test.txt内存

    rem

文件的三种打开方式

文件操做的基础模式有三种

默认的操做模式为r模式文档

  • r模式为read
  • w模式为write
  • a模式为append

文件读写内容的格式有两种

默认的读写内容的模式为b模式

  • t模式为text
  • b模式为bytes

注意:t、b这两种模式均不能单独使用,都须要与r/w/a之一连用,如:rt/rb/wt/at(经常使用),wb/ab(不经常使用)。

文件打开模式之r模式

  1. r:read ,只读模式,只能读,不能写,文件不存在时报错。
f = open(r'C:\Users\raynd\Desktop\test.txt',mode='r',encoding='gbk')
print(f.read()) # 一次性打印完全部,若是碰到数据比较大的时候,容易内存溢出。
666
帅刷刷
  1. f.read.line()

    f = open(r'C:\Users\raynd\Desktop\test.txt',mode='r',encoding='gbk')
    print(f.readline()) # 只打印一行
    print(f.readline())
    f.close()
    
    666
    
    帅刷刷
  2. ‘rb’模式

f = open(r'C:\Users\raynd\Desktop\test.txt',mode='rb') # 由于rb是字节模式,也是就二进制,因此不能再加入指定的字符编码。
print(f.read())
b'666\r\n\xcb\xa7\xcb\xa2\xcb\xa2' #b表示,写的字符串为二进制,在打印的时候不须要使用终端的编码处理,直接打印原生的二进制便可

文件打开模式之w模式

w:write,只能写,不能读,文件存在的时候会清空文件后再写入内容;文件不存在的时候会建立文件后写入内容。

w : write

fw = open(r'C:\Users\raynd\Desktop\test.txt',mode = 'w',encoding='gbk')
fw.write('ryan,全宇宙最流弊')
fw.close()

ryan,全宇宙最流弊

文件打开模式之a模式

a:append ,追加,文件存在,则在文件的末端写入内容;文件不存在的时候会建立文件后写入内容。

fa = open(r'C:\Users\raynd\Desktop\test.txt',mode = 'a',encoding='gbk')
data1=fa.write('\nrayn流弊666')
print(data1)

ryan,全宇宙最流弊
rayn流弊666

with管理文件操做上下文(文件的拷贝)

  1. 以前咱们用open()方法来操做文件,可是open打开文件后咱们还须要手动释放文件对操做系统的占用。可是其实为咱们能够更方便的打开文件,即便用python提供的上下文管理工具---with open().
with open(r'C:\Users\raynd\Desktop\test.txt',mode = 'r',encoding='gbk') as fr:
    data1 = fr.read()
    print(data1)

ryan,全宇宙最流弊
rayn流弊666
  1. with open()方法不只提供自动释放操做系统的占用,而且可以使用逗号分隔(, )一次性打开多个文件,实现文件的快速拷贝。
with open(r'C:\Users\raynd\Desktop\test.txt','r',encoding='gbk') as fr,\
    open(r'C:\Users\raynd\Desktop\test1.txt','w',encoding='gbk') as fw:
    fw.write(fr.read())

这样在桌面会自动新建了test1.txt 文档,里面的内容就是新的test.txt的内容。

补充

咱们对文件作的内容修改,其实并非在原文件上进行的修改,而是每次修改都会新建一个新的文件,而后把修改后的内容放入进新建的文件,而后删除原文件,再把新文件命名成原文件。这就是咱们在作word、Excel等文档操做时,会有缓存文件,这个缓存文件就是新建的文件。

with open(r'test.txt','r',encoding='utf8') as fr,\
    open(r'test1.txt','w',encoding='utf8') as fw:
    data = fr.read()
    print(data)
    data1 = data.replace('ry','rayn')
    fw.write(data1)

import os
os.remove('test.txt')
os.rename('test1.txt','test.txt')

这样test1.txt就替换成了test.txt

相关文章
相关标签/搜索