Articles of python

我怎样才能find哪个接口连接到给定的主机将通过路由?

我的脚本需要为存在不同networking的许多主机configurationSNMP陷阱目标。 因此,陷阱目的地地址是远程节点可访问的接口的重要部分。 我真的不想parsingLinux内核路由表,因为它可能是脆弱的,容易中断。 有无论如何审问内核,并得到它告诉我一个数据包将路由的方式。 理想情况下,会有一个python解决scheme。 我一直在看libdnet的python绑定,但似乎只能返回地址为0.0.0.0的默认网关。

为什么Python给“OSError:文件名太长”的文件名短于文件系统的限制?

以下代码会产生一个意外的exception: open("52bbe674cdc81d4140099b84fa69eea4249bcceee75bcbe4838d911ab076547cfdad3c1c5197752a98e5525fe76613dbe52dcdb1a9a397669babce0f101d010142cffa000000.csv", "w") OSError: [Errno 36] File name too long: '52bbe674cdc81d4140099b84fa69eea4249bcceee75bcbe4838d911ab076547cfdad3c1c5197752a98e5525fe76613dbe52dcdb1a9a397669babce0f101d010142cffa000000.csv' 这是意外的,因为我的文件系统是ext4(根据维基百科)有一个255字节的文件名长度限制。 上面的文件名长度为144。 那么为什么当文件名长度限制还没有被超过时,Python会引发这个exception呢?

如何在Python中使用bashvariables

在bash中,我可以在bash中执行此操作IP=$(wget -qO- ipinfo.io/ip)这将捕获我的公有IP并将其作为variables$ IP存储在我的Raspberry Pi上。 现在我想在python中捕获这个variables,使得当$IP不等于82.1x.xxx.xx时,连接到GPIO 1的led灯亮。 我是一个Python新手,所以我需要一些帮助,我有很less的知识在Python中,但在bash非常好的知识。 任何帮助或build议将不胜感激。 先谢谢你。

将表格数据从一个DB复制到另一个DB

对于开发,我发现自己需要经常从一个表格复制表格信息到另一个表格。 我只是好奇什么是Postgres这个最简单的解决scheme。 我有PGAdminIII,但它看起来确实只支持长期备份/恢复。 有没有Python或bash脚本的地方或什么,我可以给它的基本信息? 这是DB1 这是DB2 复制表格… 走! 我相信SQLYog在Win32中为MySQL做了这个,但是我现在在OSX上并且使用Postgres。

socket.gaierror:名称或服务未知

伙计们,我是一个新手到套接字编程下面的程序是一个客户端程序,从服务器请求一个文件,但我得到的错误,如下所示..我的input是GET的index.html和代码是谁能解决这个错误…? #!/usr/bin/env python import httplib import sys http_server = sys.argv[0] conn = httplib.HTTPConnection(http_server) while 1: cmd = raw_input('input command (ex. GET index.html): ') cmd = cmd.split() if cmd[0] == 'exit': break conn.request(cmd[0],cmd[1]) rsp = conn.getresponse() print(rsp.status, rsp.reason) data_received = rsp.read() print(data_received) conn.close() input command (ex. GET index.html): GET index.html Traceback (most recent call last): File […]

在scapy中过滤sniff函数的选项

我正在开发一个基于scapy的工具,在这里我需要根据协议和目标的ip地址来嗅探数据包 我想知道如何使用sniff()函数中的filter选项。 我尝试在文档中使用格式,但大多数情况下它会导致这样的问题。 scapy中的sniff函数的filter不能正常工作 。 我使用的是 a=sniff(filter="host 172.16.18.69 and tcp port 80",prn = comp_pkt,count = 1) 提前致谢!

写入文件时的UnicodeEncodeError

我有一个python脚本,在我的本地机器(OS X)上效果很好,但是当我将它复制到服务器(Debian)时,它不能按预期工作。 该脚本读取一个xml文件并以新格式打印内容。 在我的本地机器上,我可以使用stdout将脚本运行到terminal或文件(即> myFile.txt ),两者都可以正常工作。 然而,在服务器上( ssh ),当我打印到terminal一切正常,但打印到文件(这是我真正需要)给UnicodeEncodeError: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 。 所有的文件都是utf-8编码,并且在魔术评论中声明了utf-8。 如果我在列表中打印str对象(这是我通常用来获取编码问题的一个技巧),它也会引发同样的错误。 如果使用print( x.encode('utf-8') ) ,那么它会打印代码样式的位(例如b'1' b'\xd0\x9a\xd0\xb0\xd0\xbc\xd0\xb0' ) 。 如果我在shell中$ export PYTHONIOENCODING=utf-8 (如某些SOpost中所build议的),那么我得到一个二进制文件: 1 <D0><9A><D0><B0><D0><BC><D0><B0> 。 我已经检查了所有的localevariables,并且相关的variables与我在本地机器上的variables相匹配。 我可以简单地在本地处理文件并上传,但我真的很想了解这里发生的事情。 由于Python代码在一台计算机上工作,我不确定它是相关的,但我在下面添加它: # -*- encoding: utf-8 -*- import sys, xml.etree.ElementTree as ET corpus = ET.parse('file.xml') […]

复制Pythonsubprocess的terminal输出

我正在调用忍者c / c + +构build系统的包装脚本,脚本是在Python中,它应该做的一件事是logging忍者和底层编译器的输出,但不抑制标准输出。 给我麻烦的部分是,忍者似乎检测到它正在写入terminal或不,所以简单地捕捉输出并发送到标准输出结束了改变它(最值得注意的是,忍者不填充屏幕列表警告和错误的构build文件,但删除最后成功build立的翻译单位的行,因为一个新的进来)。 有没有办法让忍者写入terminal,同时仍然捕获其输出? 写入到terminal应该发生在忍者subprocess运行,但是捕获所述输出可能要等到subprocess完成。

任何人都知道如何在Python中打开或closures大写locking?

当两个换档button按住一秒钟时,我试图切换大写locking开/关。 我试过使用virtkey模块,但它不工作。 该模块确实为其他键工作,所以我不认为我错误地使用该模块。 有没有人有办法做到这一点? 只是要清楚,我想实际上切换大写locking开/关,而不仅仅是LED。 谢谢!

在python中从键盘读取原始input

我试图让我的键盘在Python中的原始input。 我有一个带有可编程按键的罗技游戏键盘,但罗技不提供Linux驱动程序。 所以我想我可以(尝试)写我自己的驱动程序。 在认为解决scheme可能是这样的: with open('/dev/keyboard', 'rb') as keyboard: while True: inp = keyboard.read() -do something- 英语不是我的母语。 如果您发现错误,请纠正。