[英]Lines are getting deleted from file when I replace string using Python
我有一個備份配置文件和一個原始配置文件。 這些文件包含一堆相同的信息。
唯一的不同是,每個配置在1行上都包含一個“ booth”和“ window”數字,這是不同的。
因此原始文件可能有一行
<file boothNumber="-1" window="-1" area="" section="">
備份文件可能有一行
<file boothNumber="325" window="3" area="" section="">
我的程序用備份文件中列出的數字替換了原始文件中的-1。
我的程序掃描計算機或服務器名稱的列表。 這是start()函數。
它將獲取一個名稱,並運行下一個函數booth()。
這將從備份配置中獲取展位號,並將其保存到原始配置中。
然后運行window()函數。
這將從備份配置中獲取窗口號,並將其保存到原始配置中。
這很好。
問題
如果我的原始配置文件包含的展位和窗口號大於備份配置文件,則出現問題。 運行完最后一個window()函數后, 將從原始配置文件的末尾砍掉大約10-11行 。
因此原始文件可能像
<file boothNumber="4444" window="4444" area="" section="">
備份文件可能包含
<file boothNumber="325" window="3" area="" section="">
第一個booth()函數將正確編輯原始配置。 當它到達第二個window()函數時,該數字已被正確編輯, 但其他行從原始配置文件的末尾截去 。
是什么原因造成的?
如果我切換Booth()和window()函數的順序,則它始終是導致問題的第二個函數。
這是我的代碼(當前從下到上運行):
您應同時取消縮進:
window(servername) # when done, call 'window' function
和
workstationid(servername) # when done, call 'workstationID' function
一級。
在第二個功能中重新打開文件之前,尚未關閉文件。 (即,您仍在with
子句中)。
您確實應該重構這些函數,因為它們或多或少都是相同的(您的代碼不是非常DRY ),但這與您的問題無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.