前言
由于在日常数据处理中,我们可能需要批量对文件进行操作,接下来将详细介绍如何使用python的os对进行批量删除、修改、保存文件的操作
假设我需要对文件夹A的文件进行操作,先编点数据:

A文件夹中有这么些文件。
其中txt文件内容编点:

别的就空着了。
读取文件
读取文件,我们首先需要知道文件名是什么。
使用os.listdir可以让我们遍历文件夹下的所有文件:
import os
# 设定文件夹路径
folder_path = r'C:\Users\ASUS\OneDrive\桌面\log\A'
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
print(filename)
print(type(filename))
输出为:

可以看到输出了文件名,并且都是字符类型,那么接下来的操作不都明朗了吗,要改什么,删什么操作什么文件,直接匹配文件名即可。
例如接下来我只想读txt文件的内容:
import os
# 设定文件夹路径
folder_path = r'C:\Users\ASUS\OneDrive\桌面\log\A'
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
if ".txt" in filename:
path = folder_path + "//" + filename
# 打开文件
with open(path, "r", encoding='utf-8') as f:
# read():读取文件全部内容,以字符串形式返回结果
data = f.read()
print(data)

可以看到,只读了txt文件。
删除文件
删除文件使用os.remove()即可
例如我想删了文件名含B的文件:
import os
# 设定文件夹路径
folder_path = r'C:\Users\ASUS\OneDrive\桌面\log\A'
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
if "B" in filename:
path = folder_path + "//" + filename
# 删除文件
os.remove(path)

运行之后,发现B全没了。
修改和保存
例如将文件名含A的文件,内容修改为追加
hello icy hunter!
点个关注!
并将文件保存为csv文件。
import os
import pandas as pd
# 设定文件夹路径
folder_path = r'C:\Users\ASUS\OneDrive\桌面\log\A'
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
if "A" in filename:
new_data = []
path = folder_path + "//" + filename
# 打开文件
with open(path, "r", encoding='utf-8') as f:
# read():读取文件全部内容,以字符串形式返回结果
data = f.read()
new_data.append(data)
new_data.append("hello icy hunter!")
new_data.append("点个关注!")
new_filename = filename.split(".")[0] + "_new.csv"
pd.DataFrame(new_data).to_csv(folder_path + "//" + new_filename, index=0, encoding="utf-8")

运行代码,发现确实多了一个文件,打开看看:

修改并保存成功了。
再运行一次代码呢?

932

被折叠的 条评论
为什么被折叠?



