print(x,y)
等價於
import sys
sys.stdout.write(str(x) + ' ' +str(y) + '\n')
從語法上講,調用python3.0 的print 函數有如下的形式:
print([object,...][,seq=' '][,end='\n'][,file=sys.stdout])
seq 是在每個對象的文本之間插入一個字符串,如果沒有樁底的話,它默認是一個單個空格,傳遞一個空字符串將會一直分隔符
end 是添加在打印文本末尾的一個字符串,如果滅有傳遞的話,它默認的是一個\n 換行字符。傳遞一個控制符串將會避免在打印的文本的末尾移動到下一個輸入行-----下一個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='\n');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