許多人希望能夠聯繫起來,這種編碼問題正在驅動我精神。我真的很感激這件事!在CRON作業中運行Python腳本編碼時遇到的問題
最終目標是能夠從終端和cron以及從cron與> stdout.txt
運行相同的script.py。不用說,我遇到了嚴重的編碼問題。
我script.py運行從終端從而精細:python script.py
它引發錯誤,但是,來自終端從而運行時:python script.py > stdout.txt
它將引發時在cron運行相同的錯誤,無論哪種方式。
我有一個python腳本,以root身份輸入crontab -e
。
這是我script.py標題:
#!/usr/bin/python
# -*- coding: utf-8 -*-
這是我的cron項:
* * * * * python /home/ubuntu/parrot/script.py > /home/ubuntu/parrot/stdout.txt
這是我stdout.txt(相關部分):
Unexpected error! (<type 'exceptions.UnicodeDecodeError'>, UnicodeDecodeError('ascii', 'blabla some weird text n\xc3\xa5r end', 54, 55, 'ordinal not in range(128)'))
這是我從終端(相關部分)的env:
LANG=en_US.UTF-8
這是從cron我ENV(相關部分):
LANG=en_US.UTF-8
這是script.py(第一)行引發錯誤:
print 'Posting @%s: %s' % (statusObj.user.screen_name.encode('ascii', 'replace'), statusObj.text.encode('utf-8', 'replace'))
編輯: sys.getdefaultencoding()
返回ascii
任何幫助,非常感謝!
是什麼'sys.getdefaultencoding()'返回? – 2012-08-07 00:34:12
它返回ascii – knutole 2012-08-07 00:37:40
爲什麼我有一種不好的感覺?.. – knutole 2012-08-07 00:49:32