我正在尝试运行以下代码,但它总是打印第一行2次,它永远不会进入elif
语句。
import re
fileOpen = open('C:\\Python36\\execrice\\test2.txt')
str1 = ' switchport trunk allowed vlan'
str2 = ' switchport trunk allowed vlan add'
for line in fileOpen:
if line.startswith(str1):
print ("first line")
elif line.startswith(str2):
print ("second line")
文件内容
switchport trunk allowed vlan 2,4-24,27,30-36,38-39,41-46,48-50
switchport trunk allowed vlan add 74,678-680,1101-1114,1201-1251
答案 0 :(得分:0)
str1
是str2
的前缀。因此,如果elif
条件为真,则if
条件也将为真。翻转您的条件顺序,您的代码应该有效。
答案 1 :(得分:0)
我假设fileOpen是文件的行。
改变你的条件。您正在检查行是否以str1开头,然后是str2。但是,str2包含str1。所有以str2开头的行也是以str1开头的。