这类似于我之前提出的问题。但我决定让它更复杂一点。
我正在制作一个可以读取文本文件并将文本文件的特定部分复制到另一个文本文件中的程序。但是,我也想生成错误消息。
例如,我的文本文件如下所示:
* VERSION_1_1234
#* VERSION_2_1234
* VERSION_3_1234
#* VERSION_2_4321
到目前为止,我的程序查看了“VERSION_2”的行并将该行复制到另一个文本文件中。
但是现在,我希望它搜索“VERSION_3”,如果它同时找到“VERSION_2”和“VERSION_3”,它会产生错误。
这是我到目前为止所拥有的:
with open('versions.txt', 'r') as verFile:
for line in verFile:
# if pound sign, skip line
if line.startswith('#'):
continue
# if version_3 there, copy
if 'VERSION_3_' in line:
with open('newfile.txt', 'w') as wFile:
wFile.write(line.rpartition('* ')[-1])
# if version_2 there, copy
if 'VERSION_2_' in line:
with open('newfile.txt', 'w') as wFile:
wFile.write(line.rpartition('* ')[-1])
# if both versions there, produce error
if ('VERSION_3_' and 'VERSION_2_') in line:
print ('There's an error, you have both versions in your text file')
# if no versions there, produce error
if not ('VERSION_3_' and 'VERSION_2_') in line:
print ('There's an error, you don't have any of these versions in your text file')
对不起,如果它看起来有点混乱。但是,当我运行程序时,它按原样运行,但即使有 VERSION_3 行,它也会打印出最后两条错误消息。我不明白为什么。我做错了什么。
请帮忙。