Python:文件操作

121 阅读3分钟

文件操作

文件操作包含:打开、关闭、读、写、复制......

文件操作的作用是:读取内容、写入内容、备份内容......

文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,更加方便。

文件路径的表示有2两种方式:绝对路径相对路径

例如:

绝对路径:C:\Python_Project\Pycharm\Day01文件操作.py

相对路径:./Day01文件操作.py

from collections.abc import Iterator,Iterable
f = open('./test/demo1.py',mode='r',encoding='utf-8')
print(f.read())

输出:

image.png

from collections.abc import Iterator,Iterable
f = open('../ttt/manage.py',mode='r',encoding='utf-8')
print(f.read())

输出:

image.png

以上就是通过在一个文件中调用另一个文件信息的过程,值得注意的是:【.】表示当前文件夹,【..】表示的是上级文件,这里的encoding=utf-8采用可变长度的编码方式,能够有效地表示各种字符,我们大多时候也用utf-8而不是采用gbk。

读取read,写入write,追加a

读取r

  1. r:只读文本默认指针在开头,read之后,指针自动到最后
  2. rb:用于读取二进制数据,例如:图片、音频、视频等,指针在开头,用法和r类似
  3. r+:可以读写,指针默认在开头

写w

  1. w:用于写入,若文件存在,则先清空内容然后再编辑,若文件不存在,则新建文件在编辑,指针默认在开头
  2. wb:以二进制格式写入,用于图片、音频、视频等指针在开头,用法和w类似
  3. w+:用于读写,若文件存在,则先清空内容然后再编辑,若文件不存在,则新建文件在编辑,指针默认在开头
  4. wb+:以二进制格式读写,若文件存在,则先清空内容然后再编辑,若文件不存在,则新建文件在编辑,指针默认在开头

追加a

  1. a:用于原有内容后进行追加,若文件存在,则指针放在文件末尾进行追加内容,若文件不存在,新建文件进行写入
  2. ab:以二进制格式打开一个文件进行追加,用法和a类似
  3. a+:用于读写,若文件存在,指针则放在文件结尾,文件打开时将会是追加模式,若文件不存在,则创建新文件进行读写
  4. ab+:以二进制格式打开一个文件进行读写,用法和a+类似

r、w、a的区别与类似:r操作时,文件必须存在,w和a可以新建;文件存在时,w会先清空内容在进行操作,a是在原有内容后面进行操作,不会清空。

f = open('example2.py',mode='w',encoding='utf-8')
f.write('hello')
f.close()

输出:将会在example2.py中,先清空所有内容,然后打出hello,这里值得注意的是,最好养成在对文件进行操作之后,要有一个close()的过程,这样可以有效的保存操作的内容。

注意:w中不能用r,r中不能用w,a中不能用r

f = open('example2.py',mode='w+',encoding='utf-8')
f.write('python')
f.seek(2)    #移动光标
print(f.read())
f.write('我爱python')
f.close()

输出结果:python我爱python

这里接着写入'我爱python',并没有清空前面的'python',那是因为之前的write操作之后,指针就在末尾处,也就是'python'后面,所以之后的操作都是对之后的内容进行的。

with open('./test/demo1.py',encoding='utf-8') as f1:
    data = f1.read()        #这个时候的data就是全局变量,可以任意使用的

with open('./test/demo1.py',encoding='utf-8') as f2:
    f2.write(data)          #单文件备份的操作
os.mkdir('新文件夹')  #A.新建文件夹
os.rmdir('新文件夹')    #删除文件夹,不能和A一起使用
os.remove('./test/demo1.py') #删除文件
os.mkdir('新文件夹')                #A新建文件夹
os.rmdir('新文件夹')                #删除文件夹,不能和A一起使用
os.remove('./test/demo1.py')       #删除文件
os.rename('example2.py','test.py')  #重命名文件,rename(Q,W),Q是目标表,W是重命名之后的名字
print(os.getcwd())                 #当前文件所在位置
print(os.listdir())                #当前文件夹中所有文件