Articles of python 2.x

使用popen和专用的TTY Python运行交互式Bash

我需要在一个独立的Python进程中运行一个交互的Bash实例,并使用它自己的TTY(我不能使用pexpect)。 我使用这个代码片段,我通常看到类似的程序中使用: master, slave = pty.openpty() p = subprocess.Popen(["/bin/bash", "-i"], stdin=slave, stdout=slave, stderr=slave) os.close(slave) x = os.read(master, 1026) print x subprocess.Popen.kill(p) os.close(master) 但是当我运行它时,我得到以下输出: $ ./pty_try.py bash: cannot set terminal process group (10790): Inappropriate ioctl for device bash: no job control in this shell 运行Strace显示一些错误: … readlink("/usr/bin/python2.7", 0x7ffc8db02510, 4096) = -1 EINVAL (Invalid argument) … ioctl(3, […]

在Windows上从Python 2.x中的命令行参数中读取Unicode字符

我希望我的Python脚本能够读取Windows中的Unicode命令行参数。 但是看起来sys.argv是一个用本地编码编码的string,而不是Unicode。 我怎样才能读完整的Unicode命令行? 示例代码: argv.py import sys first_arg = sys.argv[1] print first_arg print type(first_arg) print first_arg.encode("hex") print open(first_arg) 在我的PC上设置日文代码页,我得到: C:\temp>argv.py "PC・ソフト申請書08.09.24.doc" PC・ソフト申請書08.09.24.doc <type 'str'> 50438145835c83748367905c90bf8f9130382e30392e32342e646f63 <open file 'PC・ソフト申請書08.09.24.doc', mode 'r' at 0x00917D90> 这是Shift-JIS编码我相信,它“工作”的文件名。 但是,如果文件名不包含Shift-JIS字符集中的字符,则最终的“打开”调用将失败: C:\temp>argv.py Jörgen.txt Jorgen.txt <type 'str'> 4a6f7267656e2e747874 Traceback (most recent call last): File "C:\temp\argv.py", line 7, in <module> print open(first_arg) IOError: [Errno […]

在Mac和Windows上处理\ r \ n vs \ n python中的换行符

我有一个python脚本,当在Windows机器上运行,并在Mac上运行时,给出不同的输出。 在深入挖掘的过程中,我发现这是因为当Python在Mac上从一个文件读取换行符时,它被读入\r\n ,而在Windows中以某种方式消失。 因此,如果我将脚本中的每个\n都更改为\r\n ,则在Mac上可以正常工作。 但是,如果我这样做,它停止在Windows PC上工作。 有没有简单的方法来解决这个问题?

在Windows中破坏了Python长文件名的支持

我写Python脚本来复制文件; 不幸的是,它保持失败,因为文件名太长(> 256)。 有没有办法解决这个问题? 我正在使用Python 2.5.4和Windows XP。 干杯,

如何在文件中写俄文字符?

在控制台,当我试图输出俄罗斯字符它给了我??????????????? 谁知道为什么? 我试图写入文件 – 在这种情况下是相同的情况。 例如 f=open('tets.txt','w') f.write('some russian text') f.close 里面的文件是 – ????????????????????????? / 要么 p="some russian text" print p ????????????? 在附加的记事本中,不要让我用俄文字母保存文件。 我给这个: 此文件包含Unicode格式的字符,如果将此文件另存为ANSI编码的文本文件,则会丢失该字符。 要保留Unicode信息,请单击下面的“取消”,然后从“编码”下拉列表中select一个Unicode选项。 继续? 如何调整我的系统,所以我不会有这个问题。

卸载从源代码构build的python?

我已经从源代码安装了Python 2.6,不知何故后来错误地从包pipe理器错误地安装了另一个Python 2.6。 我找不到一种方法来卸载从源代码构build的Python,这是可能的/简单的? 运行Ubuntu 10.04。