Python文件读写与批量处理:基于指定字符截断保存的示例
本文介绍如何使用Python进行文件的读写与保存操作。通过open函数以不同模式打开文件,将读取内容转换为列表格式,并遍历查找指定字符(如'test'或'min')出现的位置。在找到目标后,截取该位置之后的数据并保存到新文件或新文件夹中,实现批量文件处理与内容筛选。
Python文件读写保存操作的示例代码
在Python中处理文本文件时,通常涉及读取、筛选和保存三个核心步骤。为了高效处理数据,我们需要理解文件打开模式,并将读取的数据转换为可操作的列表或字典格式。以下是具体的操作逻辑与代码示例。
1. 文件打开模式说明
使用 open() 函数时,选择合适的模式至关重要:
- r 模式:以只读方式打开文件。文件必须存在,否则报错。
- r+ 模式:以读写方式打开文件。文件必须存在。
- w 模式:以只写方式打开文件。如果文件存在,则清空其内容;如果文件不存在,则创建新文件。
- w+ 模式:以读写方式打开文件。如果文件存在,则清空其内容;如果文件不存在,则创建新文件。
2. 单文件处理:删除指定字符前的文本
假设我们需要读取一个名为 test.txt 的文件,并删除指定字符(例如 'test')出现行之前的所有内容。操作步骤如下:
- 使用
open(filePath, 'r')打开文件。 - 调用
readlines()将文件内容转换为列表f_list,以便按行处理。 - 遍历列表,查找包含目标字符串且位于行首的行。
- 记录该行的索引
tempIndex。 - 创建新列表
tempContainer,将tempIndex之后的所有行存入其中。
以下是实现该逻辑的代码:
import sys
filePath = "/Users/xxxxxx/Desktop/test.txt"
# 打开文件
files = open(filePath, 'r')
# 转成list
f_list = files.readlines()
tempIndex = 0
# 对f_list 循环 每个index对应一行数据
for index in range(len(f_list)):
# temp是获取一行的数据
temp = f_list[index]
# 判断"test"是不是temp这行数据的首位 如果是首位 result为true
result = temp.find("test") == 0
if result:
# 如果是首位 这就是我们要删除的位置 获取他的index
tempIndex = index
break
# 存放新数据
tempContainer = []
for index in range(len(f_list)):
if index > tempIndex:
# tempIndex之前的数据我们不处理,把tempindex之后的数据存到新的list里面
tempContainer.append(f_list[index])
# 这就获得了我们需要的新数据
print(tempContainer)3. 批量文件处理:文件夹内文件筛选与保存
当需要处理多个文件时,可以将文件置于一个文件夹内。通过获取文件夹内所有文件名,拼接成完整路径,然后对每个文件执行上述的单文件处理逻辑。处理完成后,将结果保存到一个新的文件夹中。
操作步骤如下:
- 定义初始文件夹路径
filePath和新文件夹路径newFilePath。 - 使用
os.listdir(filePath)获取文件夹下所有文件名。 - 遍历文件名,筛选出包含目标扩展名(如 'txt')的文件。
- 对每个符合条件的文件,执行单文件处理逻辑,找到指定字符(如 'min')出现的位置。
- 拼接新文件的完整路径
newSingleFileFullPath。 - 以
'w'模式打开新文件,将指定字符行之后的数据写入。 - 关闭文件。
以下是实现批量处理的代码:
import os
# 初始的文件夹路径
filePath = "/Users/xxxxxxxx/Desktop/fileDocument"
# 存放新文件的空白文件夹
newFilePath = "/Users/xxxxxxxx/Desktop/newFileDocument"
# 获取文件夹下所有文件名
fileNames = os.listdir(filePath)
for file in fileNames:
# 如果当前的文件名包含了'txt',就当它是正确的文件(并不严谨)
if file.find("txt") >= 0:
# 拼接成我们要读取的完整路径
fileFullPath = filePath + "/" + file
# open 函数 默认是 'r'类型 ,
singleFile = open(fileFullPath)
# 转换成list数据
singleFile_list = singleFile.readlines()
tempIndex = 0
for index in range(len(singleFile_list)):
temp = singleFile_list[index]
result = temp.find("min") == 0
if result:
tempIndex = index
break
# 拼接新的文件路径
newSingleFileFullPath = newFilePath + "/" + file
# 以 w 方式打开新的空白文件
newFile = open(newSingleFileFullPath, 'w')
for index in range(len(singleFile_list)):
if index > tempIndex:
# 写入tempindex行之后的数据
newFile.writelines(singleFile_list[index])
newFile.close()以上就是Python文件读写保存操作的详细内容,更多关于Python文件读写、Python批量处理文件、Python删除指定字符前文本、Python文件保存操作资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













