因此,基本上,我的代码从txt中获取一行,并使用selenium完成它的工作。问题是,每次检查后,我的程序都会给我硒检查后的状态和已检查的行。问题是这两个函数都在不同的def中。硒部分和检查状态部分。
所以我可以做x=f.readline((,并在检查完成后调用它,这将不会产生任何问题,因为x在1中是必需的。def每次都在变,我不能改变他的位置。因此,我尝试在status def中执行y=f.readline((,这也应该有效,但由于我再次调用readline,两个变量都发生了变化。我需要它逐行检查和报告同时读取行((副本\n这会造成很多麻烦
让我说得更清楚一点。这是更简单的代码
f = open('list.txt', 'r')
def part1():
x = f.readline()
xxx = x[0:][:16]
xxxx = x[17:][:2]
driver.get('https://website.com')
elem = driver.find_element_by_name("example")
elem.send_keys(xxx);
elem = driver.find_element_by_name("example2")
elem.send_keys(xxxx);
......
def checkpart():
part1()
(some sleep code)
if driver.find_elements_by_xpath("//*[contains(text(), 'checkprocess')]"):
print('[-] Bad: ', x)
elif driver.find_elements_by_xpath("//*[contains(text(), 'checkprocess2')]"):
print('[+] Good: ', x)
else:
print('[+] Smthelse: ', x)
(some input questions...)
i = 1
register() //other function thats not needed here//
while i <= input:
checkpart()
time.sleep(1)
i += 1
它有点复杂,我找不到更简单的方法来读取((。虽然它不允许我在检查部分显示x,而且它还复制
我需要显示当前检查的行(即x(,而不更改它,也不复制它的末尾。
正如我所说,这对我来说有点复杂,我做了很多研究,但没有找到任何有帮助的东西。我也在php中发布了同样的内容。
您尝试过读取该文件吗?然后,您可以使用split创建或列出例如:
f = open("list.txt", "r")
f_read = f.read()
f_list = f_read.split("n")
print(x, end = "")
是否足够?
你能提出其他要求吗?
或者,你可以用x[:-1]去掉最后一个字符,但正如我所观察到的,你已经意识到了这种可能性。
---编辑---顺便说一句,如上所述,最好是将整个文件(或部分(读取到列表中,然后迭代列表。
您可以将所有文本读取到内存中并从中工作,而不是使用文件句柄本身(变量f(。您不必担心光标在文件流中的位置。
f = open('list.txt', 'r')
content = f.readlines()
f.close()
for line in content:
part1(line)
checkpart(line)
现在,您可以处理可变内容而不必头疼
您可以在checkpart((中读取文件,只需将x传递到part1(x(上。为了避免后面的换行符,可以使用x.rstrip((
f = open('list.txt', 'r')
def part1(x):
xxx = x[0:][:16]
xxxx = x[17:][:2]
driver.get('https://website.com')
elem = driver.find_element_by_name("example")
elem.send_keys(xxx);
elem = driver.find_element_by_name("example2")
elem.send_keys(xxxx);
......
def checkpart():
x = f.readline().rstrip()
part1(x)
(some sleep code)
if driver.find_elements_by_xpath("//*[contains(text(), 'checkprocess')]"):
print('[-] Bad: ', x)
elif driver.find_elements_by_xpath("//*[contains(text(), 'checkprocess2')]"):
print('[+] Good: ', x)
else:
print('[+] Smthelse: ', x)
(some input questions...)
i = 1
register() //other function thats not needed here//
while i <= input:
checkpart()
time.sleep(1)
i += 1