python中奇怪的换行符错误

时间:2014-06-20 20:16:49

标签: python linux shell newline

我一直在尝试使用linux shell将一个字节序列输出到一个文件中。问题出在我做的时候:

python -c "print '\x11\x22\x33\x44'" > new_file

new_file包含' \ x11 \ x22 \ x33 \ x44 \ x0a'。

我在StackOverflow上查找了类似的问题,并试图通过以下和许多其他类似技术去掉\ x0a:

python -c "print '\x11\x22\x33\x44'.rstrip('\x0a')" > new_file
然而,\ x0a拒绝离开。

之前有没有人遇到这个问题?非常感谢快速修复。感谢。

PS:我已经尝试过各种版本的Python,包括2.5,2.7,3.1,3.3。所有这些都导致了同样的问题。

1 个答案:

答案 0 :(得分:1)

这是因为print函数会在末尾自动添加换行符(ascii 0x0a)。您可以使用{3}的Python 3版本来设置结束字符:

print

如果您确实需要使用Python 2,可以使用this trick在终端中运行多行Python代码:

> python3 -c "print('\x11\x22\x33\x44', end='')" > new_file
> hexdump -C new_file
11 22 33 44