我将使用followig代码作为我的问题的参考:
>>> a = 10
>>> if a or b:
... print(a)
...
10
>>> if False and b:
... print(a)
...
>>> if a and b:
... print(a)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
Run Code Online (Sandbox Code Playgroud)
我将有条件地测试案例:
a是定义的,b可能定义也可能不定义a是假而b没有定义,或者 a是True和b定义我将if a or b:用于第一种情况和if a and b:第二种情况.根据我上面的测试,它可以工作,但这假设i)条件的解析是从左到右,ii)它在条件状态已知时停止
这是Python的记录行为,这些正确的假设是什么?
我使用CherryPy运行非常简单的Web服务器。它旨在处理GET参数,如果参数正确,请对其进行处理。
import cherrypy
class MainServer(object):
def index(self, **params):
# do things with correct parameters
if 'a' in params:
print params['a']
index.exposed = True
cherrypy.quickstart(MainServer())
Run Code Online (Sandbox Code Playgroud)
例如,
http://127.0.0.1:8080/abcde:
404 Not Found
The path '/abcde' was not found.
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\cherrypy\_cprequest.py", line 656, in respond
response.body = self.handler()
File "C:\Python27\lib\site-packages\cherrypy\lib\encoding.py", line 188, in __call__
self.body = self.oldhandler(*args, **kwargs)
File "C:\Python27\lib\site-packages\cherrypy\_cperror.py", line 386, in __call__
raise self
NotFound: (404, "The path '/abcde' was not found.")
Powered …Run Code Online (Sandbox Code Playgroud) 以下代码
import Tkinter as tk
root = tk.Tk()
labelA = tk.Label(root, text="hello").grid(row=0, column=0)
labelB = tk.Label(root, text="world").grid(row=1, column=1)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
产生

如何向 中添加部分边框,Label以便我拥有

我看到那borderwidth=是一个可能的选择的Label,但它所处理的四个边界。
注意:问题不是关于填充单元格(这是以前在重复评论中链接的答案的本质)
新来MongoDB的,我试图优化批量写入数据库.但是我不明白如何初始化Bulk()操作.
我的理解是,由于插入将在集合上完成,因此initializeUnorderedBulkOp()应该初始化(或者更确切地说"在什么"上):
以下代码涵盖了我能想到的所有案例:
import pymongo
conn = pymongo.MongoClient('mongodb.example.com', 27017)
db = conn.test
coll = db.testing
# tried all of the following
# this one does not make much sense to me as I insert to a collection, added for completeness
bulk = db.initializeUnorderedBulkOp()
# that one seems to be the most reasonable to me
bulk = coll.initializeUnorderedBulkOp()
# that one is from http://blog.mongodb.org/post/84922794768/mongodbs-new-bulk-api
bulk = db.collection('testing').initializeUnorderedBulkOp()
# the staging and execution
# bulk.find({'name': 'hello'}).update({'name': …Run Code Online (Sandbox Code Playgroud) 我正在匹配诸如的事件
[Sun Jan 11 10:43:35 2015][3205.51466981] user idp : testing 10.234.22.220 (10.234.22.220) [61673782]
Run Code Online (Sandbox Code Playgroud)
同
%{SYSLOG5424SD:timestamp}%{GREEDYDATA}user %{WORD:user} : testing %{HOST:ip}
Run Code Online (Sandbox Code Playgroud)
它有效,我看到elasticsearch/kibana中的各个领域.具体timestamp在上面的例子中匹配[Sun Jan 11 10:43:35 2015]
我现在想要使用这个匹配,date以便拥有正确的@timestamp.
我试过用 filter
date
{
match => [ "timestamp", "SYSLOG5424SD" ]
}
Run Code Online (Sandbox Code Playgroud)
但这会导致logstash崩溃,并提示输出错误报告 - 我打开了一张票.
与此同时,我尝试通过明确匹配模式
date
{
match => [ "timestamp", "\[EEE MMM dd HH:mm:ss y\]" ]
}
Run Code Online (Sandbox Code Playgroud)
正如您所怀疑的那样 - 它从不匹配,@timestamp设置为logstash记录事件的时间.
你能发现问题,还是有一种聪明的方法来调试这种情况?
有没有办法列出与脚本中导入的模块相对应的PyPi包名?
例如,scapy3k我需要使用导入模块(这是它的名字)
import scapy.all
Run Code Online (Sandbox Code Playgroud)
但要安装的实际包是scapy-python3.后者是我希望从import声明中找到的内容中提取的内容(我不关心它的名称 - scapy3k在这种情况下).
还有其他一些例子(现在让我逃避),这些例子的pip install名称与import之后使用的名称完全不同.
我有一个在Ubuntu yakkety上运行Debian jessie的docker容器。
在docker内部(ssh例如,通过docker连接)时,我与主机隔离(这是预期的)。但是,dmesg我意识到这向我显示了主机而不是容器的消息。它如何访问其主机的信息?
docker容器的配置不是特殊的(除了它使用的是不同于的特定桥docker0),尤其是它不会在任何特权模式下运行("Privileged": false如下所示):
root@srv ~# docker inspect minecraft-1-8
[
{
"Id": "748cfdfbf3fb5526cb7151cbc0857117af3c7bd8ab9e086c4f2efb897290d66e",
"Created": "2016-12-01T15:35:05.287672787Z",
"Path": "/usr/bin/supervisord",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 28650,
"ExitCode": 0,
"Error": "",
"StartedAt": "2016-12-15T18:37:08.409564695Z",
"FinishedAt": "2016-12-15T18:37:07.457274028Z"
},
"Image": "sha256:78a2f88d47e29523503c2196ed2faaa3d1039d948d73987edc03b2abd338595d",
"ResolvConfPath": "/var/lib/docker/containers/748cfdfbf3fb5526cb7151cbc0857117af3c7bd8ab9e086c4f2efb897290d66e/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/748cfdfbf3fb5526cb7151cbc0857117af3c7bd8ab9e086c4f2efb897290d66e/hostname",
"HostsPath": "/var/lib/docker/containers/748cfdfbf3fb5526cb7151cbc0857117af3c7bd8ab9e086c4f2efb897290d66e/hosts",
"LogPath": "/var/lib/docker/containers/748cfdfbf3fb5526cb7151cbc0857117af3c7bd8ab9e086c4f2efb897290d66e/748cfdfbf3fb5526cb7151cbc0857117af3c7bd8ab9e086c4f2efb897290d66e-json.log",
"Name": "/minecraft-1-8",
"RestartCount": 0,
"Driver": "overlay",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": …Run Code Online (Sandbox Code Playgroud) 我有一些代码可以进行调用requests.get(),但可能会以各种方式失败。我想捕获requests异常,但不关心为什么调用失败。
我想避免像这样的代码
try:
r = requests.get(url)
except:
pass
Run Code Online (Sandbox Code Playgroud)
因为它可能会捕获不requests相关的异常(在上面的情况下,这几乎不会是这种情况,但如果有更多的代码,这是可能的)。
requests例外情况已记录在案,但我不想列出所有例外情况。有没有办法捕获所有异常,某种requests异常通配符?(更一般地说 - 对于模块提供的异常)
我也可以去做类似的事情
try:
r = requests.get(url)
except Exception as e:
print(e)
Run Code Online (Sandbox Code Playgroud)
但我想避免分析e以过滤掉requests异常。
注意:这不是关于处理除一个异常之外的所有异常的问题的重复- 我的目标是一整类相关异常(并且如果其他东西引发异常,则允许崩溃,在我的情况下这将是一个错误)
我有一个<input>字段中的(动态)选择列表:
<input list="choices">
<datalist id="choices">
<option>one</option>
<option>two</option>
</datalist>Run Code Online (Sandbox Code Playgroud)
在做出选择后是否会立即触发事件<option>?(如果这很重要,我想在 Vue.js 中捕获/使用它)。这将是在以下场景中单击鼠标左键时:
我正在使用 在我的每个处理程序上.setFormatter()设置相同的logging.Formatter()内容。
有没有办法设置全局默认格式?
或者 - 是否可以迭代已经通过.addHandler()记录器添加的处理程序?
另一个问题提到了格式是什么,但没有提到如何设置它。
python ×7
python-3.x ×2
cherrypy ×1
containers ×1
docker ×1
dom-events ×1
exception ×1
html ×1
html-input ×1
import ×1
installation ×1
javascript ×1
jodatime ×1
logging ×1
logstash ×1
mongodb ×1
privileges ×1
pymongo ×1
pypi ×1
tkinter ×1