line.strip() 我第二个陈述的因果关系
line.strip() cause and effects to my second statement
我的代码分为 3 个部分。我的第一部分告诉我第 1 行的条件是什么行号。我的第二部分告诉我第 2 行条件的行号。最后一部分将数字作为一个范围并打印出范围。
代码的第一部分:我得到 num1 的结果 6。
对于代码的第二部分,当我 运行 它本身时我得到 24,但是当我 运行 它与第 1 部分一起时我得到 18。
然后在第 3 部分,我索引文件并尝试打印出正确的行,但它们不起作用,因为当我同时满足这两个条件时,我的代码的第一部分正在更改数字 运行同时宁。
是否有更好的方法 运行 仅通过索引或仅通过枚举来处理此代码?我需要有用户输入并能够根据输入打印出一系列文件。
#Python3.7.x
#
#
import linecache
#report=input('Name of the file of Nmap Scan:\n')
#target_ip=input('Which target is the report needed on?:\n')
report = "ScanTest.txt"
target_ip = "10.10.100.2"
begins = "Nmap scan report for"
fhand = open(report,'r')
beginsend = "\n"
#first statement
for num1,line1 in enumerate(fhand, 1):
line1 = line1.rstrip()
if line1.startswith(begins) and line1.endswith(target_ip):
print(num1)
print(line1)
break
#second statement
for num2,line2 in enumerate(fhand, 1):
line2 = line2.rstrip()
if line2.startswith(beginsend) and num2 > num1:
print(num2)
print(line2)
break
with open('ScanTest.txt') as f:
linecount = sum(1 for line in f)
for i in range(num1,num2):
print(linecache.getline("ScanTest.txt", i))
The first part of the code: I get a result of 6 for num1. for the second part of the code I get 24 when i run it by itself but a 18 when i run it with part 1.
显然第二部分继续读取第一部分停止的文件。
最小的变化是把
num2 += num1
在第二个循环之后,或者把第三个循环改成for i in range(num1, num1+num2):
。第二个循环中的条件 and num2 > num1
将被删除。
我的代码分为 3 个部分。我的第一部分告诉我第 1 行的条件是什么行号。我的第二部分告诉我第 2 行条件的行号。最后一部分将数字作为一个范围并打印出范围。
代码的第一部分:我得到 num1 的结果 6。
对于代码的第二部分,当我 运行 它本身时我得到 24,但是当我 运行 它与第 1 部分一起时我得到 18。
然后在第 3 部分,我索引文件并尝试打印出正确的行,但它们不起作用,因为当我同时满足这两个条件时,我的代码的第一部分正在更改数字 运行同时宁。
是否有更好的方法 运行 仅通过索引或仅通过枚举来处理此代码?我需要有用户输入并能够根据输入打印出一系列文件。
#Python3.7.x
#
#
import linecache
#report=input('Name of the file of Nmap Scan:\n')
#target_ip=input('Which target is the report needed on?:\n')
report = "ScanTest.txt"
target_ip = "10.10.100.2"
begins = "Nmap scan report for"
fhand = open(report,'r')
beginsend = "\n"
#first statement
for num1,line1 in enumerate(fhand, 1):
line1 = line1.rstrip()
if line1.startswith(begins) and line1.endswith(target_ip):
print(num1)
print(line1)
break
#second statement
for num2,line2 in enumerate(fhand, 1):
line2 = line2.rstrip()
if line2.startswith(beginsend) and num2 > num1:
print(num2)
print(line2)
break
with open('ScanTest.txt') as f:
linecount = sum(1 for line in f)
for i in range(num1,num2):
print(linecache.getline("ScanTest.txt", i))
The first part of the code: I get a result of 6 for num1. for the second part of the code I get 24 when i run it by itself but a 18 when i run it with part 1.
显然第二部分继续读取第一部分停止的文件。 最小的变化是把
num2 += num1
在第二个循环之后,或者把第三个循环改成for i in range(num1, num1+num2):
。第二个循环中的条件 and num2 > num1
将被删除。