ขึ้นอยู่กับคำตอบของโทมัส Watnedal อย่างไรก็ตามสิ่งนี้ไม่ได้ตอบคำถามในส่วนบรรทัดต่อบรรทัดของคำถามเดิม ฟังก์ชั่นยังสามารถแทนที่แบบ line-to-line
การนำไปใช้งานนี้จะแทนที่เนื้อหาของไฟล์โดยไม่ต้องใช้ไฟล์ชั่วคราวเนื่องจากสิทธิ์ของไฟล์ที่ตามมาจะยังคงไม่เปลี่ยนแปลง
รวมถึง re.sub แทนการแทนที่อนุญาตให้แทนที่ regex แทนการแทนที่ข้อความล้วนเท่านั้น
การอ่านไฟล์เป็นสตริงเดี่ยวแทนที่จะเป็นบรรทัดต่อบรรทัดอนุญาตให้จับคู่หลายบรรทัดและแทนที่
import re
def replace(file, pattern, subst):
# Read contents from file as a single string
file_handle = open(file, 'r')
file_string = file_handle.read()
file_handle.close()
# Use RE package to allow for replacement (also allowing for (multiline) REGEX)
file_string = (re.sub(pattern, subst, file_string))
# Write contents to file.
# Using mode 'w' truncates the file.
file_handle = open(file, 'w')
file_handle.write(file_string)
file_handle.close()
file
เป็นคลาสที่กำหนดไว้ล่วงหน้าของเงาที่มีชื่อเดียวกัน