簡體   English   中英

當我使用Python替換字符串時,行從文件中刪除

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM