Python strip()在文件操作期间使用print和stdout.write的奇怪行为

时间:2013-12-16 07:14:56

标签: python

在下面的代码中,print语句虽然以逗号结尾以禁止换行打印并且让strip()去掉文件输入行中的换行符仍然产生换行符,如sys.stdout.write()中的那样工作正常,从文件输入中删除尾随的换行符。那么为什么strip()的这种双重行为?或者新版本出现在印刷声明中?

h = open('file')
print h.readline().strip(),
sys.stdout.write(h.readline().strip())

2 个答案:

答案 0 :(得分:0)

  

那么为什么strip()的这种双重行为?

没有“strip()的双重行为”。无论上下文如何,它的行为都完全相同。

  

来自打印声明的新行?

您的代码段中的print语句似乎不会输出新行。如果您正在观察它,它几乎肯定来自其他地方。

但是,确保使用(非交互式)解释器运行脚本。交互式控制台可以不同方式处理print中的尾随逗号。

答案 1 :(得分:0)

“sys.stdout.write()”仅用于删除字符串中的“\ n”,但它无法删除空格结束或字符串的前面。(例如:“string”)。 所以strip()方法用于删除print的第二个参数中的空格。