我对Python很陌生,但是到底是什么......这是一个奇怪的问题所以我会尽我所能尽力解释它:
我正忙着用Python编写一个脚本来检查一个网页是否有特定的变化(基本上从0翻到1的数字).当发生更改时,脚本将继续执行其他操作.不幸的是,我还没有达到这一点,因为我甚至在解析HTML时遇到了麻烦,因为BeautifulSoup抓住它时很多HTML都丢失了!(至少,这是我声称的.)
让我们一步一步:我正在使用BeautifulSoup并Mechanize为此而努力.首先,我在网页上找到一个表单并选择它,根据需要更改表单中的控件.(我已经验证了所有控件都按照我的预期更改.)之后,我提交表单,然后调用我编写的辅助函数调用process_results():
...
form = list(client.forms())[1]
client.select_form('ttform');
...
# Modify controls
...
client.submit()
process_results(client)
Run Code Online (Sandbox Code Playgroud)
process_results()只是检查客户回来了什么.首先,根据放入表单的内容,您可以获得无效的搜索结果,因此我想搜索网页上显示的错误消息,看看它是否存在.我BeautifulSoup用来做这个:
# Processes search results.
def process_serach_results(cli):
html = cli.response().read()
soup = BeautifulSoup(html)
...
Run Code Online (Sandbox Code Playgroud)
评估有问题的代码是否出现在页面上的语句如下所示:
...
if (soup.find('td', attr = {'class' : 'msgarea'}) != None):
# Do something...
...
Run Code Online (Sandbox Code Playgroud)
这永远不会被评估为真,因为它找不到我正在描述的标签.我决定直接从打印出既响应Mechanize和BeautifulSoup,这是我得到了(缩短):
Mechanize 打印我要找的代码,这意味着响应正确回复:
...
<TD class=msgarea>
<B class=important_msg>There was a problem with your request:</B>
<BR>
<BR>
<li class=red_msg>...</li>
...
</TD></TR></TABLE><P></DIV>
... …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个简单的bash脚本,它可以添加整数并提供总和.我认为最简单的方法是将输入分配给数组.然后遍历数组以执行求和.我需要在for循环中使用数组的长度,并且无法弄清楚如何将数组长度分配给变量.
任何帮助在简单的脚本(我做了学习bash)上表示赞赏
#!/bin/bash
# add1 : adding user supplied ints
echo -n "Please enter any number of integers: "
read -a input
echo "Your input is ${input[*]}"
echo "${#input[@]} number of elements"
num = ${#input[@]} # causing error
for ((i = 0; i < "${num}"; ++i )); do # causing error
sum = $((sum + input[$i]))
done
echo "The sum of your input is $sum"
Run Code Online (Sandbox Code Playgroud)
这会产生错误:
line 10: num: command not found
line 11: ((: i < :syntax error: operand …Run Code Online (Sandbox Code Playgroud) 我正在寻找任何一个小例子或什么来帮助我,我找不到它.我觉得我错过了一些明显的东西.我在一个.py文件中有一个大函数,我想在另一个.py文件中调用并使用函数中的所有变量而我无法做到.所以我试图用一个小例子来做它仍然无法得到它.假设我有一个包含以下内容的文件mod1.py:
def mod(num):
a = 5
b = 6
c = num
Run Code Online (Sandbox Code Playgroud)
我尝试添加各种各样的回报,仍然无法让它工作.但我在一个名为mod_read.py的文件中调用它:
import mod1
mod1.mod(1)
d = mod1.mod.a
print(d)
Run Code Online (Sandbox Code Playgroud)
当我运行mod_read.py时,我收到错误:"AttributeError:'function'对象没有属性'a'".我错过了什么明显的事情?
我想知道是否可以在 Windows 7 下找到具有标准 python 2.7 库的应用程序(例如 MS Excel)的安装目录。我的意思是,它不应该使用任何 pywin32 或 xlrd 等。
也许它会查找注册表来找到安装路径?
我需要逐行写一个文本文件.此代码逐行打印文本,但只有最后一行存储在result.txt文件中.
import re
import fileinput
for line in fileinput.input("test.txt"):
new_str = re.sub('[^a-zA-Z0-9\n\.]'," ", line)
print new_str
open('result.txt', 'w').write(new_str)
Run Code Online (Sandbox Code Playgroud) 我对Python比较陌生,我不能为我的生活弄清楚这里发生了什么.当for用于遍历列表时,Python正在跳过所有其他数字,但仅在一定数量的元素之后.这是我正在处理的更大项目的一部分,但是这段代码说明了它.
代码正常工作到7,此时它开始跳过其他所有数字.我知道不要编辑我正在迭代过程中的列表,所以我要避免这样做,但是for甚至没有调用它们中的一些.我需要做些什么来让它循环遍历每个数字而不是其他所有数字?它为什么这样做?
码:
import math
i1 = 60
l1 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 49, 53, 59]
l3 = l1
print(l1)
for a in l1:
print(a)
if a > math.floor(math.sqrt(i1)):
print("REMOVED: " + str(a))
l3.remove(a)
print(l3)
Run Code Online (Sandbox Code Playgroud)
输出:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 49, 53, 59]
2
3
5
7
11
REMOVED: 11
17
REMOVED: 17 …Run Code Online (Sandbox Code Playgroud) 非常感激任何的帮助。我有一个使用sqlalchemy的连接引擎,它可以完美连接。我想在用户在tkinter条目框中提供信息的地方使其动态化,然后将该信息解析为字典,然后由函数调用该字典,然后从那里创建引擎。
我的工作引擎是:
engine = sqlalchemy.create_engine('postgresql+pg8000://myuser:mypass@localhost/mydb')
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西
sqlalchemy.create_engine('postgresql+pg8000://DBUSER:DBPASS@DBHOST/DBNAME')
Run Code Online (Sandbox Code Playgroud)
其中,变量首先由tkinter Entry提供,并放入dict中,然后由连接函数读取。
我有以下
from sqlalchemy import create_engine
from sqlalchemy.engine import url
"""
These vars below are for testing. Ultimately they will be resolved
by a get() from tkinter which will take the values entered by a
user into an Entry widget and place them into the dict below.
The db_connect() func should build the url from the dict.
"""
DBNAME = 'mydb'
DBUSER = 'myuser'
DBPASS = 'password'
DBHOST ='localhost'
PNUM = '5432' …Run Code Online (Sandbox Code Playgroud) 我不确定为什么这个Pickle示例没有显示两个字典定义.据我所知,"ab +"应该意味着pickle.dat文件被附加到并且可以从中读取.我是整个泡菜概念的新手,但网上的教程似乎不仅仅是初始存储.
import cPickle as pickle
def append_object(d, fname):
"""appends a pickle dump of d to fname"""
print "append_hash", d, fname
with open(fname, 'ab') as pickler:
pickle.dump(d, pickler)
db_file = 'pickle.dat'
cartoon = {}
cartoon['Mouse'] = 'Mickey'
append_object(cartoon, db_file)
cartoon = {}
cartoon['Bird'] = 'Tweety'
append_object(cartoon, db_file)
print 'loading from pickler'
with open(db_file, 'rb') as pickler:
cartoon = pickle.load(pickler)
print 'loaded', cartoon
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望使用for循环构建一个字典,然后将key:value对添加到pickle.dat文件,然后清除字典以节省一些RAM.
这里发生了什么?
有人可以解释下面的代码行吗?它是某种嵌套for循环吗?如果是这样,有人可以将其重写为等效的嵌套for循环.allPositions参数是一个列表,synapsesPerSegment是一个int变量.
for rx,ry in random.sample(allPositions, synapsesPerSegment):
Run Code Online (Sandbox Code Playgroud) 这应该是不言自明的
>>> (1+2j).real #Normal Usage
1.0
>>> (1+2j).imag #Normal Usage
2.0
>>> 1+2j.real #Normal Usage
1.0
>>> 1+2j.imag #Flips Out
3.0
>>> 123+657j.real
123.0
>>> 123+657j.imag
780.0
Run Code Online (Sandbox Code Playgroud)
z.imag以某种方式累加了实部和虚部.
我发现这很有趣..这是一个错误还是这是一个故意的功能?
python ×9
bash ×1
cmath ×1
dictionary ×1
for-loop ×1
html-parsing ×1
list ×1
module ×1
pickle ×1
python-2.7 ×1
python-3.x ×1
sqlalchemy ×1
windows ×1