小编Ayr*_*yrx的帖子

在Windows中处理unicode子进程环境的正确方法是什么?

以这个示例片段为例。

import subprocess
import os

env = os.environ.copy()
env["FOO"] = u"foo"
subprocess.check_call(["ls", "-l"], env=env)
Run Code Online (Sandbox Code Playgroud)

在Windows上,这将失败。

C:\Python27\python.exe test.py
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    subprocess.check_call(["ls", "-l"], env=env)
  File "C:\Python27\lib\subprocess.py", line 535, in check_call
    retcode = call(*popenargs, **kwargs)
  File "C:\Python27\lib\subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python27\lib\subprocess.py", line 710, in __init__
    errread, errwrite)
  File "C:\Python27\lib\subprocess.py", line 958, in _execute_child
    startupinfo)
TypeError: environment can only contain strings
Run Code Online (Sandbox Code Playgroud)

sys.path证明,使用unicode完全可以。什么可以正确处理此代码(及类似代码)?显而易见的解决方案是调用.encode()unicode路径,但是我不确定这是否会导致意外行为。

python windows python-2.7

3
推荐指数
1
解决办法
500
查看次数

为什么binascii.a2b_hex()返回一个字符串?

这是标准库文档中对该函数的描述.

binascii.a2b_hex(hexstr)

返回十六进制字符串hexstr表示的二进制数据.该函数与b2a_hex()的反函数.hexstr必须包含偶数个十六进制数字(可以是大写或小写),否则会引发TypeError.

但是,以下代码示例打印出来 Hello World!

import binascii
print binascii.a2b_hex('48656c6c6f20576f726c6421')
Run Code Online (Sandbox Code Playgroud)

为什么print将二进制数据解释为字符串?到底发生了什么?

python python-2.7

1
推荐指数
1
解决办法
5952
查看次数

如何打印输出命令中的行数

例如:

cat /etc/passwd
Run Code Online (Sandbox Code Playgroud)

计算和显示命令输出的行数的最简单方法是什么?

bash

0
推荐指数
1
解决办法
3066
查看次数

Python - 如何设置这一行代码的样式?

首先,我不确定这个问题是否适合这个问题,所以如果有必要,请随意将其移动到更合适的位置.

cmd_folder = os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( inspect.currentframe() ))[0]))
Run Code Online (Sandbox Code Playgroud)

我有这行代码.Python PEP 8文档建议将行限制为79个字符,以保持较小屏幕的可读性.

设计这一行代码以符合PEP建议的最优雅方式是什么?

cmd_folder = os.path.realpath(os.path.abspath(os.path.split
                               (inspect.getfile
                                 ( inspect.currentframe() ))[0]))
Run Code Online (Sandbox Code Playgroud)

这是否是最合适的方式,是否有一个我没有想过的更好的方法?

python

0
推荐指数
1
解决办法
228
查看次数

标签 统计

python ×3

python-2.7 ×2

bash ×1

windows ×1