Articles of python

限制访问我的网站上的图像,除非通过我自己的htmls

在我的网站上,我以一种简单的方式存储用户图片,如:“image / user_1.jpg”。 我不希望访问者只能通过尝试user_ids来查看服务器上的图像。 (例如:www.mydomain.com/images/user_2.jpg,www.mydomain.com/images/user_3.jpg,等等…) 到目前为止,我有三个解决scheme: 我试图使用.htaccess密码保护“图像”文件夹。 这帮了我一些意见,但一些图像开始popup一个用户名和密码请求我的htmls(而令人惊讶的是一些图像没有),所以这似乎是一个不可预知的方法。 我可以开始转换我的user_id的一些盐的md5哈希。 图像将被命名为:/image/user_e4d909c290d0fb1ca068ffaddf22cbd0.jpg。 我不喜欢这个解决scheme。 这使得文件系统的方式变得复杂。 或者我可以使用PHP的readfile()函数或Perl或Python中类似的东西。 例如,我可以使用md5string传递密码来validation访问者是否具有访问该图像的login用户。 我倾向于选项3,但与Perl或Python的angular度(假设他们会比PHP更快)。 不过,我想看看关于这个问题的其他想法。 也许有一个简单的.htaccess技巧呢? 基本上所有我想确定的是,没有人可以从我的网站查看图像,除非图像是从我的网站托pipe的htmls内直接调用。 非常感谢, Haluk

无法使用termios.TIOCSTI伪造terminalinput

我见过的大部分代码示例都试图从stdin中读取本地回显。 要做到这一点,他们修改“本地模式”标志,以删除设置为“回声input字符” 。 我以为我可以修改TIOCSTI的“input模式”标志,即“将input队列中的给定字节插入”。 。 但是,即使我以root身份运行脚本,它也没有效果。 我写给fd的任何东西似乎都转到terminal输出,而不是terminalinput。 基本上我想要做的是这个确切的事情 ,但在纯Python。 """ termfake.py Usage: sudo python termfake.py /dev/ttys002 Get the tty device path of a different local termimal by running `tty` in that terminal. """ import sys import termios fd = open(sys.argv[1], 'w') fdno = fd.fileno() # Returns [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] tatters = […]

作为Linux系统服务从virtualenv启动一个wsgi应用程序

我目前正在virtualenv内开发一个瓶子应用程序。 我打算使用bjoern WSGI服务器来服务它(但这可能并不重要)。 我也打算用lighty或nginx反向代理服务于应用程序。 无论如何,应用程序可以作为一个系统服务从自己的virtualenv运行? 如果是这样,一个人怎么办呢?

每次计算机从hibernate状态唤醒时运行一个python脚本

我在python上写了一个小脚本,它从控制台调用一个命令行来hibernate一台linux机器(或者closures它,以防一个单词改变),然后在一段时间后唤醒。 通过watch命令再次调用该命令。 import os import time os.system("watch -n 20 sudo rtcwake -u -s 10 -m mem") 所以rtcwake命令在电脑重新启动20秒后再次被调用。 每当电脑被唤醒时,我想要运行另一个脚本。 我已经有了这个其他的脚本,这是一个倒计时。 我想这样做是为了向用户显示剩下多less时间,直到计算机再次closures,但是第二个python脚本也应该在计算机每次唤醒后被调用 任何想法在这? 谢谢

安装Python时出错

一旦击中 make install 我得到以下错误 /usr/bin/install: cannot create regular file /usr/local/bin/python2.6: Permission denied make: *** [altbininstall] Error 1 我不是root用户,所以我认为它的权限问题。 我有我自己的子文件夹在/home/my_username有没有办法通过提供一个更具体的命令来完成python安装吗? 另外,Python 2.4已经安装,我怎么确保我实际上使用2.6? 非常感谢!

缺lessDBus .service文件

我正在为自己的需求构build自定义的dbus服务,并希望在需要时自动启动dbus服务。 为此目的,我创build了这样的.service文件 [D-Bus Service] Name=com.mycompany.servicename Exec=/home/myuser/Workspace/service-start User=myuser 在这里,我只是改变了服务和可执行文件的实际名称,但这不是重点。 我已经仔细检查了真实姓名 – 完全匹配。 我已经把这个文件名为com.mycompany.servicename.service到/ usr / share / dbus-1 / services文件夹(我使用Ubuntu 11.10)。可执行文件对每个人都有x权限。 这就是问题所在 – 当我尝试启动执行的客户端时 bus = dbus.SessionBus() bus.get_object('com.mycompany.servicename','/path/to/object') 我得到dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.mycompany.servicename was not provided by any .service files 在path'/path/to/object'中的'/path/to/object'在服务启动后立即注册。 我只是不明白为什么dbus无法find我的.service文件。 也许我错过了什么? 有任何想法吗? 编辑我设法让D-BUS自动启动我的脚本。 .service文件的部分应该被命名为[D-BUS Service]而不是[D-Bus service]

如何从/ dev / input / mice中读出滚轮信息?

对于家庭机器人项目,我需要读出原始的鼠标移动信息。 我通过使用这个SO-answer中的python脚本部分地成功了。 它基本上读出/ dev / input / mice并将hexinput转换为整数: import struct file = open( "/dev/input/mice", "rb" ) def getMouseEvent(): buf = file.read(3) button = ord( buf[0] ) bLeft = button & 0x1 bMiddle = ( button & 0x4 ) > 0 bRight = ( button & 0x2 ) > 0 x,y = struct.unpack( "bb", buf[1:] ) […]

Python 3.4.3 subprocess.Popen得到没有pipe道命令的输出?

我正在尝试将一个命令的输出分配给一个variables,而不是该命令的输出。 其原因在于,如果正在pipe理,正在讨论的命令会将未格式化的文本输出为输出,但如果正在从terminal运行,则会提供彩色格式的文本。 我需要得到这个颜色格式的文本。 到目前为止,我已经尝试了一些东西。 我已经尝试过Popen了: output = subprocess.Popen(command, stdout=subprocess.PIPE) output = output.communicate()[0] output = output.decode() print(output) 这可以让我打印输出,但它给了我input命令时得到的无格式输出。 这是有道理的,因为我在Python代码中将其pipe道化。 但是我很好奇,如果有一种方法可以将这个命令的输出直接分配给一个variables,而不需要运行pipe道本身的pipe道版本。 我也尝试了依赖于check_output的以下版本: output = subprocess.check_output(command) output = output.decode() print(output) 再次,我得到相同的未格式化输出,命令返回时,命令是pipe道。 有没有办法获得格式化的输出,命令通常从terminal给出的输出,当它不被pipe道?

Pythonparsing日志文件以实时提取事件

我有一个将消息logging到文件的进程。 我想实现另一个用Pythonparsing这些日志的过程(当它们被写入文件时),过滤我感兴趣的行,然后根据第一个过程的状态执行某些操作。 我想知道如果有一个像Python这样的库,我会自己写一些东西。 另外,有关如何实现像这样的Python的想法将不胜感激。 谢谢。

sys.stdin不closuresctrl-d

我在program.py中有以下代码: from sys import stdin for line in stdin: print line 我运行,input行,然后按Ctrl + D ,但程序不会退出。 这工作: $ printf "echo" | python program.py 为什么按Ctrl + d时程序不能退出? 我正在使用Fedora 18terminal。