我有一个备份配置文件和一个原始配置文件。这些文件包含一系列相同的信息行。
唯一的区别是,每个配置包含一个“展位”和“窗口”号码在1行是不同的。
所以原始文件可能有一行
<file boothNumber="-1" window="-1" area="" section="">备份文件可能有一行如下
<file boothNumber="325" window="3" area="" section="">我的程序用备份文件中列出的数字替换原始文件中的-1。
我的程序扫描计算机或服务器名称的列表。这是start()函数。
它将获取一个名称并运行下一个函数,即booth()。
这将从备份配置中获取展位号,并将其保存到原始配置中。
然后,window()函数运行。
这将从备份配置中获取窗口号,并将其保存到原始配置中。
这个很好用。
问题
如果我的原始配置文件包含一个比备份配置文件更大的展台和窗口号,我就有问题了。一旦运行了最后一个窗口()函数,大约10-11行就会从原始配置文件的末尾切分。
因此,原始文件可能会开始如下
<file boothNumber="4444" window="4444" area="" section="">备份文件可能包含
<file boothNumber="325" window="3" area="" section="">第一个booth()函数将正确地编辑原始配置。当它到达第二个window()函数时,这个数字被正确地编辑为,但是其他行被从原始配置文件的末尾剪掉。
是什么导致了这一切?
如果我切换booth()和window()函数的顺序,那么它始终是导致问题的第二个函数。
下面是我的代码(目前它从下到上运行):
发布于 2017-08-03 20:46:49
您应该同时取消以下两项内容:
window(servername) # when done, call 'window' function和
workstationid(servername) # when done, call 'workstationID' function一层。
在第二个函数中重新打开文件之前,您还没有关闭它。(即)您仍然在with子句中)。
您确实应该重构这些函数,因为它们或多或少是相同的(您的代码不是非常干的),但这与您的问题无关。
https://stackoverflow.com/questions/45493729
复制相似问题