Articles of python

在Windows 7下的python中使用文本文件作为标准input

我是一个win7用户。 我意外地读了* nix系统中的redirect(比如command1 < infile > outfile ),然后我发现在Windows(链接)中可以做类似的事情 。 而且python也可以用pipe(?)或者stdin / stdout(?)来做这样的事情。 我不明白这是怎么发生在Windows中,所以我有一个问题。 我使用某种专有的Windows程序(.exe)。 该程序能够将数据附加到文件。 为了简单,让我们假设它是类似的东西 while True: f = open('textfile.txt','a') f.write(repr(ctime()) + '\n') f.close() sleep(100) 问题:我可以使用这个文件(textfile.txt)作为标准input吗? 我的意思是脚本(运行时)应该总是(不是一次)处理所有的新数据,即 在“永无止境的循环”中: 程序(.exe)写入内容。 Python脚本捕获数据和进程。 你能写出如何在Python中做到这一点,或者在win cmd / .bat或其他方式。 这是非常酷的事情。 我想学习如何做到这一点! :d

如何在Windows上模拟socket.socketpair

标准的Python函数socket.socketpair不幸在Windows上不可用(从Python 3.4.1开始),我怎样才能编写一个可以在Unix和Windows上运行的替代品?

subprocess无法成功重启目标python文件

我写了一个程序my_test.py从网上获取数据并存储到MySQL。 但程序my_test.py崩溃了很多(我的糟糕的编程技巧…),我试图监视它的状态,并在崩溃时重新启动它。 我用下面的代码使用subprocess模块。 import subprocess import time p = subprocess.Popen(['python.exe', r'D:\my_test.py'], shell=True) while True: try: stopped = p.poll() except: stopped = True if stopped: p = subprocess.Popen(['python.exe', r'D:\my_test.py'], shell=True) time.sleep(60) 但是,当my_test.py崩溃,一个窗口警告窗口跳出来提醒我, my_test.py是closures的,我会select哪个动作:停止,debugging…类似的东西。 并且my_test.py似乎被警告窗口冻结,上面的代码无法成功重启。 只有当我手动closures窗口select“closures”,它会重新启动。 有没有解决这个问题,使我的代码可以成功地重新启动my_test.py当它坏了? 对不起,由于我的英文不好所带来的不便,请多多指教。

当我更改图标时,Pyinstaller exe无法正常工作

我正在用python Tkinter做一个GUI。 它也使用numpy和matplotlib。 所以,我使用了pyinstaller,并从python脚本中创build一个exe。 它完美无瑕地运行,做了我想要的一切。 然后,我尝试从gui窗口(我正在使用Windows 10)更改tk图标 master.iconbitmap(default='image.ico') 除了这一行,我不改变主程序。 然后使用pyinstaller和我没有任何错误的exe文件。 但是,当我试图运行该exe文件显示“致命的错误!file.exe返回-1”我错过了什么? 如何解决这个问题? 另外我还有一个额外的问题,我build立的第一个exe(不更改图标)在Windows-10和Windows-8上运行,而不是在Windows-7上运行。 在Windows 7中它显示相同的错误“致命的错误!file.exe返回-1”

改变目录在Windows中使用Python可写

在Windows中,通过编辑提供完全控制的目录的安全属性,可以将C盘中的目录手动更改为可写。 这是如何在Python中完成的? 我的想法是: import os, stat my_dir = 'C:\\Program Files\\Java' os.chmod (my_dir, stat.S_IWRITE) 但没有成功。 有没有人有想法?

强制另一个程序的标准输出使用Python无缓冲

python脚本正在控制Linux上的外部应用程序,通过pipe道将input传递到外部应用程序stdin,并通过pipe道从外部应用程序stdout读取输出。 问题在于对pipe道的写入是通过块进行缓冲的,而不是通过线路进行缓冲,因此在控制脚本接收到外部应用程序中的printf输出数据之前发生延迟。 外部应用程序不能被改变来添加显式的fflush(0)调用。 Python标准库的pty模块如何与子stream程模块一起使用来实现这一目标?

在Windows上为Python 2.7构buildlxml

我正在尝试在Windows 64位机器上为Python 2.7构buildlxml。 我找不到Python 2.7版本的lxml egg。 所以我正在从源头上编译它。 我正在按照这个网站上的说明 http://lxml.de/build.html 在静态链接部分。 我收到错误 C:\Documents and Settings\Administrator\Desktop\lxmlpackage\lxml-2.2.6\lxml-2.2. 6>python setup.py bdist_wininst –static Building lxml version 2.2.6. NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' need s to be available. ERROR: 'xslt-config' is not recognized as an internal or external command, operable program or batch file. ** make sure the […]

如何安全地写入文件?

想象一下,你有一个用于处理某种XML文件或configuration文件的库。 该库将整个文件读入内存,并提供编辑内容的方法。 当您完成操作内容时,您可以调用write来将内容保存回文件。 问题是如何以安全的方式做到这一点。 覆盖现有文件(开始写入原始文件)显然是不安全的。 如果write方法在完成之前失败,则最终得到一半写入文件,并且丢失了数据。 一个更好的select是将某个临时文件写入某个地方,并在write方法完成后,将该临时文件复制到原始文件中。 现在,如果复制以某种方式失败,您仍然正确地保存临时文件中的数据。 如果复制成功,您可以删除临时文件。 在POSIX系统上,我猜你可以使用rename系统调用这是一个primefaces操作。 但是,如何在Windows系统上做到最好? 特别是,你如何使用Python来处理这个最好的? 另外,是否有另一种安全写入文件的scheme?

在Python中确定正在运行的程序

我将如何使用Python来确定当前正在运行的程序。 我在Windows上。

Python:我怎样才能使ANSI转义代码也在Windows中工作?

如果我在Linux下运行这个python它工作: start = "\033[1;31m" end = "\033[0;0m" print "File is: " + start + "<placeholder>" + end 但是,如果我在Windows中运行它不起作用,我怎样才能让ANSI转义码也在Windows上工作?