Python文件读写与批量处理:基于指定字符截断保存的示例

顾言
顾言
发布时间:2026-10-12 | 2人浏览过
原创

本文介绍如何使用Python进行文件的读写与保存操作。通过open函数以不同模式打开文件,将读取内容转换为列表格式,并遍历查找指定字符(如'test'或'min')出现的位置。在找到目标后,截取该位置之后的数据并保存到新文件或新文件夹中,实现批量文件处理与内容筛选。

Python文件读写保存操作的示例代码

在Python中处理文本文件时,通常涉及读取、筛选和保存三个核心步骤。为了高效处理数据,我们需要理解文件打开模式,并将读取的数据转换为可操作的列表或字典格式。以下是具体的操作逻辑与代码示例。

1. 文件打开模式说明

使用 open() 函数时,选择合适的模式至关重要:

  • r 模式:以只读方式打开文件。文件必须存在,否则报错。
  • r+ 模式:以读写方式打开文件。文件必须存在。
  • w 模式:以只写方式打开文件。如果文件存在,则清空其内容;如果文件不存在,则创建新文件。
  • w+ 模式:以读写方式打开文件。如果文件存在,则清空其内容;如果文件不存在,则创建新文件。

2. 单文件处理:删除指定字符前的文本

假设我们需要读取一个名为 test.txt 的文件,并删除指定字符(例如 'test')出现行之前的所有内容。操作步骤如下:

  1. 使用 open(filePath, 'r') 打开文件。
  2. 调用 readlines() 将文件内容转换为列表 f_list,以便按行处理。
  3. 遍历列表,查找包含目标字符串且位于行首的行。
  4. 记录该行的索引 tempIndex。
  5. 创建新列表 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. 批量文件处理:文件夹内文件筛选与保存

当需要处理多个文件时,可以将文件置于一个文件夹内。通过获取文件夹内所有文件名,拼接成完整路径,然后对每个文件执行上述的单文件处理逻辑。处理完成后,将结果保存到一个新的文件夹中。

操作步骤如下:

  1. 定义初始文件夹路径 filePath 和新文件夹路径 newFilePath。
  2. 使用 os.listdir(filePath) 获取文件夹下所有文件名。
  3. 遍历文件名,筛选出包含目标扩展名(如 'txt')的文件。
  4. 对每个符合条件的文件,执行单文件处理逻辑,找到指定字符(如 'min')出现的位置。
  5. 拼接新文件的完整路径 newSingleFileFullPath。
  6. 以 'w' 模式打开新文件,将指定字符行之后的数据写入。
  7. 关闭文件。

以下是实现批量处理的代码:

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文件保存操作资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表