乐之之

知而行乐,乐而行之,天道酬勤,学无止境。
文件操作

一、文件操作的作用

  • 文件操作包含:打开、关闭、读、写、复制......
  • 文件操作的作用是:读写内容、写入内容、备份内容......
  • 文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。

二、文件操作的基本步骤打开文件

  • 打开文件
  • 读写等操作
  • 关闭文件

(一)打开

在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:

open(name,mode)
  • name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径。)
  • mode:设置打开文件的模式(访问模式):只读、写入、追加等。
  • *encoding=“utf-8”*
模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除,如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 

三、文件对象方法

(一)写入操作

  • 先创建一个文件,然后往文件内写入内容。
f = open("test.txt","a",encoding="utf-8")
# write 添加数据
f.write("大家好,我是张三")
f.close()
  • w和a模式:如果文件不存在则创建该文件:如果文件存在,w模式先清空再写入,a模式直接末尾追加

(二)读取操作

1、read(num)

  • num表示要从文件中读取的数据的长度
# 打开文件
f = open("test.txt","r",encoding="utf-8")
# 读取信息
cont = f.read()
# 将读取的信息打印
print(cont)
# 关闭文件
f.close()

2、上下文管理器

with open("test.txt","r",encoding="utf-8") as f:
    cont = f.read()
    print(cont)

-------------------
大家好,我是张三

3、readlines()

f = open("test.txt","r",encoding="utf-8")
cont = f.readlines()
print(cont)
f.close()

----------------------------
['大家好,我是张三']

4、readline()

f = open("test.txt","r",encoding="utf-8")
cont = f.readline()
print(cont)
f.close()

----------------------
大家好,我是张三

5、seek()

  • 作用:用来移动文件指针。
  • 语法:文件对象.seek(偏移量,起始位置)
  • 0:文件开头
  • 1:当前位置
  • 2:文件结尾
with open("test.txt","r",encoding="utf-8") as f:
    f.seek(6,0)
    cont = f.read()
    print(cont)

-----------------------------
好,我是张三
  • 注意:中文占三个字节,英文占一个字节。

(三)文件备份

  • 需求:用户输入当前目录下任意文件名,程序完成对该文件的备份功能(备份文件名为XX【备份】后缀,列如:test【备份】.txt)
name = "test.txt"
# 找到.的索引
index = name.rfind(".")
print(index)
# test备份.txt

new_name = name[:index]+"备份"+name[index:]

old_file = open("test.txt","r",encoding="utf-8")
new_file = open(new_name,"a",encoding="utf-8")
while True:
    cont = old_file.read()
    if len(cont) == 0:
        break
    new_file.write(cont)

old_file.close()
new_file.close()

 

 

  •  备份文件写入数据
  • 1、打开源文件和备份文件
  • 2、将源文件数据写入备份文件
  • 3、关闭文件

四、文件和文件夹的操作

  • 在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下

1、导入os模块

import os

2、文件重命名

os.rename(目标文件名,新文件名)
import os
os.rename("aa.txt","bb.txt")

3、删除文件

os.remove(目标文件名)
os.remove("bb.txt")

4、创建文件夹

os.mkdir(文件名名字)
os.mkdir("这是第一个新创建的文件夹")

5、删除文件夹

os.rmdir(文件夹名字)
os.rmdir(“这是第一个新创建的文件夹”)

6、获取当前目录

os.getcwd()
print(os.getcwd())

7、改变默认目录

os.chdir(目录)
os.chdir(“这是第一个新创建的文件夹”)

8、获取目录列表

os.listdir(目录)
file_list = os.listdir()
print(file_list)

-------------------

['.idea', 'bb.txt', 'demo1.py', 'demo2.py', 'demo3.py', 'main.py', 'test.txt', 'test备份.txt', '一首诗.txt','这是第一个新创建的文件夹']

五、批量重命名

  • 先是找到所有想要重命名的文件夹
  • 进行遍历修改
import os

file_list = os.listdir()
print(file_list)
for file in file_list:
    new_name = "python_"+file
    os.rename(file,new_name)
  • 还原重命名
file_list = os.listdir()
for file in file_list[1:]:
    result = len("python_")
    new_name = file[result:]
    os.rename(file,new_name)

 

posted on 2022-10-04 18:45  乐之之  阅读(75)  评论(0编辑  收藏  举报