print(x,y)
等价于
import sys
sys.stdout.write(str(x) + ' ' +str(y) + ' ')
从语法上讲,调用python3.0 的print 函数有如下的形式:
print([object,...][,seq=' '][,end=' '][,file=sys.stdout])
seq 是在每个对象的文本之间插入一个字符串,如果没有桩底的话,它默认是一个单个空格,传递一个空字符串将会一直分隔符
end 是添加在打印文本末尾的一个字符串,如果灭有传递的话,它默认的是一个 换行字符。传递一个控制符串将会避免在打印的文本的末尾移动到下一个输入行-----下一个print 将会保持添加到当前输出行的末尾。
file 指定了文本将要发送到的文件、标准流或者其他类似文件的对象;如果没有传递的话,它默认的是sys.stdout。带有一个类似文件的write(string)方法的任何对象都可以传递,但真正的文件应该已经为了输出而打开。
例子:
import sys x = 'spam' y = '99' z = ['eggs'] print('first') print(x,y,z) print('second sep') print(x,y,z,sep='....') print('third end') print(x,y,z,end=' ');print(x,y,z) print('foured end','') print(x,y,z,end=',');print(x,y,z) print('fived file') print(x,y,z,sep='...',file=open('data.txt','w')) print(open('data.txt').read())
结果
first spam 99 ['eggs'] second sep spam....99....['eggs'] third end spam 99 ['eggs'] spam 99 ['eggs'] foured end spam 99 ['eggs'],spam 99 ['eggs'] fived file spam...99...['eggs']
重定向输出流
sys.stdout = open('log.txt','a')
print(x,y,z)
举例
import sys temp = sys.stdout sys.stdout = open('log.txt','a') print('spam') print(1,2,3) sys.stdout.close() sys.stdout = temp print('back here') print(open('log.txt').read())
输出:
back here
spam
1 2 3