У меня возникли проблемы с корректной работой моего оператора if. В конце iplist.txt есть пустая строка, которую я не хочу запускать, но по какой-то причине она все еще работает. Я попытался удалить последнюю строку файла, но он удаляет только последнюю допустимую строку, а не пустую строку, я даже пытался удалить пробелы, пустые строки и нулевые строки, но он все равно будет работать со строкой. И самое странное, что пробел запускается как в блоке if, так и в блоке else.
with open ("iplist.txt", "r") as file:
filecontents = file.read()
for line in filecontents.split('\n'):
filename = (line) + ".txt "
command = "nmap -O -oG " + ".\\ips\\" + (filename) + (line)
print(command)
print(filename)
strlen = int (len(filename))
print(strlen)
compareline = line[:4]
print(compareline)
if compareline == beginline: #beginline is declared as 10.9 earlier in the file
print("Testing 1..2...")
os.system(command)
filenameforos = (line + ".txt")
#detailedosdetection = open(filenameforos)
#next(filecontents)
else:
print("Testing...")
del line
#next(StopIteration)
Вот содержимое iplist.txt
10.9.10.38
10.9.10.45
10.9.11.10
#extra line
редактировать
Я пробовал это, но это не запустило цикл, я уверен, что я делаю это неправильно.
with open ("iplist.txt", "r") as file:
filecontents = file.read()
lines = file.readlines()
lines = [x.strip() for x in lines]
print("Creating list")
for line in lines:
filename = (line) + ".txt "
command = "nmap -O -oG " + ".\\ips\\" + (filename) + (line)
print(command)
print(filename)
strlen = int (len(filename))
print(strlen)
compareline = line[:4]
print(compareline)
if compareline == beginline: #beginline is declared as 10.9 earlier in the file
print("Testing 1..2...")
os.system(command)
filenameforos = (line + ".txt")
#detailedosdetection = open(filenameforos)
#next(filecontents)
else:
print("Testing...")
del line
#next(StopIteration)