想要逐行搜索 txt 里的全部内容,但是只 run 第一行就完成了

2018-05-06 07:27:16 +08:00
 FX08

第一个很小的程序,困在这一步进行不下去了

import os

from selenium import webdriver

#打开浏览器到百度

ie_driver=os.path.abspath(r"C:\Program Files\Internet Explorer\IEDriverServer.exe")

os.environ["webdriver.ie.IEDriverServer"]=ie_driver

driver=webdriver.Ie(ie_driver)

driver.get("https://www.baidu.com")

#打开 txt f = open(r"D:\worki\hello\hello word.txt",'r')

s=f.readline()

#开始搜索 driver.find_element_by_id("kw").send_keys(s)

driver.find_element_by_id("su").click()

#找到内容

try:

driver.find_element_by_partial_link_text("大学")

print (s+"分数可能不够,再看看别的吧")

except Exception:

print(s)
3210 次点击
所在节点    Python
17 条回复
CEBBCAT
2018-05-06 07:52:46 +08:00
来,使用 Markdown 发文或 Gist 分享代码,现在的代码格式有点乱
FX08
2018-05-06 08:04:11 +08:00
@CEBBCAT #1

这样会好一点吗?

import os

from selenium import webdriver

#打开浏览器到百度

ie_driver=os.path.abspath(r"C:\Program Files\Internet Explorer\IEDriverServer.exe")

os.environ["webdriver.ie.IEDriverServer"]=ie_driver

driver=webdriver.Ie(ie_driver)

driver.get("https://www.baidu.com")

#打开 txt



f = open(r"D:\worki\hello\hello word.txt",'r')

s=f.readline()



#开始搜索

driver.find_element_by_id("kw").send_keys(s)

driver.find_element_by_id("su").click()

#找到内容

try:

driver.find_element_by_partial_link_text("大学")

print (s+"分数可能不够,再看看别的吧")
except Exception:

print(s)
FX08
2018-05-06 08:11:17 +08:00
import os
from selenium import webdriver
#打开浏览器到百度
ie_driver=os.path.abspath(r"C:\Program Files\Internet Explorer\IEDriverServer.exe")
os.environ["webdriver.ie.IEDriverServer"]=ie_driver
driver=webdriver.Ie(ie_driver)
driver.get("https://www.baidu.com")
#打开 txt
f = open(r"D:\worki\hello\hello word.txt",'r')
s=f.readline()
#开始搜索
driver.find_element_by_id("kw").send_keys(s)
driver.find_element_by_id("su").click()
#找到内容
try:
driver.find_element_by_partial_link_text("大学")
print (s+"分数可能不够,再看看别的吧")
except Exception:
print(s)
laxenade
2018-05-06 08:17:50 +08:00
readline 本来也只会 read 一行
FX08
2018-05-06 08:22:04 +08:00
@laxenade
想要把每一行都进行搜索,该怎么写呢 /头疼
Blacate
2018-05-06 08:27:15 +08:00
FX08
2018-05-06 08:46:07 +08:00
@Blacate
万分感谢,现在的问题变成 如何把读取出来的行 赋值给 s,直接写 s=line 好像不行

f = open(r"D:\worki\hello\keyword.txt")
line=f.readline()
while line:
print (line,end="")
line=f.readline()
s=line
jatsz
2018-05-06 09:03:13 +08:00
Python 代码靠缩进来隔开语义段,所以没有格式良好的代码很难阅读。按行一行一行读取文件可以使用:

```python
with open(r'D:\worki\hello\hello word.txt') as fp:
for line in fp:
print line
```
coordinate
2018-05-06 09:06:07 +08:00
@FX08 你似乎不知道 generator ? 了解一下。这是 python 里面的基础知识啊。
jatsz
2018-05-06 09:07:05 +08:00
好像回复里不能用 markdown.

with open(r'D:\worki\hello\hello word.txt') as fp:
<Tab>for line in fp:
<Tab><Tab>print line

一个<Tab>表示一个缩进层次。
FX08
2018-05-06 09:20:56 +08:00
@jatsz 问题返回原点了,在下面 send keys 的时候,只能进行一次,我想要的是把 txt 里全部内容的搜索一遍
FX08
2018-05-06 09:23:56 +08:00
@jatsz generator 的确是个新名词,我来找找
FX08
2018-05-06 10:00:50 +08:00
@jatsz 实在是太感谢了,Python 代码靠缩进来隔开语义段,缩进这个词实在是太重要了
FX08
2018-05-06 10:01:30 +08:00
谢谢大家,问题已经解决
Sylv
2018-05-06 10:09:43 +08:00
简单来说,你每次都是重新 open 文件来 readline() 一次,得到的当然只能是第一行。你要做的是,在 open 文件后,写个循环 readline() 读取整个文件的每一行。
建议你先找本 Python 基础教程过一遍,先把基础编程知识掌握下。
WizardMeow
2018-05-06 11:51:58 +08:00
for i in 文件,每次循环 i 就是一行
crb912
2018-05-06 12:45:10 +08:00
我基本都这么写
f = open(r"D:\worki\hello\hello word.txt",'r')
for line in f.readlines ():
pass

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/452458

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX