You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现指定区间文本替换并写入新文件的脚本需求

Solution to Replace Text Only Between Specific Markers in a Full File Read

Got it, let's fix up your script to only replace "line" with "Pine" between the start sequence and end sequence markers. Since you're required to read the full file first, we can split the content into three parts, modify only the middle section, then stitch everything back together.

Step-by-Step Breakdown:

  • First, we'll correct the file reading syntax (you missed quotes around your filename!) and use a safer with statement to auto-close files.
  • Locate the exact positions of the start/end markers to isolate the section we need to modify.
  • Apply the "line" → "Pine" replacement only to that middle section.
  • Combine the unmodified pre-marker content, modified middle content, and unmodified post-marker content.
  • Write the final result to your output file.

Complete Working Code:

# Read the full file content safely (auto-closes file after reading)
with open("file_ori.txt", "r") as f:
    full_read = f.read()

# Define our target markers
start_marker = "start sequence"
end_marker = "end sequence"

# Find the positions of the markers in the full text
start_pos = full_read.find(start_marker)
end_pos = full_read.find(end_marker)

# Add a check for missing markers (optional but adds robustness)
if start_pos == -1 or end_pos == -1:
    print("Error: Could not locate start or end sequence markers in the file")
else:
    # Split content into three distinct sections
    # 1. Everything before and including the start marker
    pre_section = full_read[:start_pos + len(start_marker)]
    # 2. The content between start and end markers (this gets modified)
    middle_section = full_read[start_pos + len(start_marker):end_pos]
    # 3. Everything from the end marker onwards
    post_section = full_read[end_pos:]

    # Perform the replacement only on the middle section
    modified_middle = middle_section.replace("line", "Pine")

    # Combine all sections back into one string
    final_content = pre_section + modified_middle + post_section

    # Write the result to the output file
    with open("file_ori_edit.txt", "w") as output_file:
        output_file.write(final_content)

Key Details:

  • Using with statements for file handling prevents accidental resource leaks by automatically closing files when done.
  • We calculate start_pos + len(start_marker) to ensure we don't include the start marker itself in the replacement range.
  • The marker existence check helps catch cases where your input file might be missing the required sequences.

内容的提问来源于stack exchange,提问作者Codeburn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:50:01