我尝试编写一个简单的日志记录脚本,该脚本要求输入文本,然后将输入以及日期和时间保存到新的文本文件中(或将其附加到现有文件中)。问题是,IDLE GUI控制台(或它所称的)使用我的默认语言环境编码(Windows 1250),但是当我通过从文件浏览器执行它来启动脚本时,它会在默认的Win shell中打开,它使用CP852编码。我已经通过在输出之前将输入转换为unicode而不是cp1250来解决这个问题,但是如果我想同时使用这两个控制台呢?有没有办法告诉他们彼此?也许添加一个条件,如果它是来自Win Shell的输入,则使用cp852转换字符串,如果不是,则添加cp1250?
很抱歉,如果帖子太复杂,我在Windows 7 64bit上使用捷克语本地化运行32位Python 2.7.5。
这是我正在运行的代码:
#!/usr/bin/python
# -*- coding: cp1250 -*-
import time
import datetime
ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
print u'It is %s right now. What\'s up?' %st
string = unicode(raw_input(), 'cp852')
string_output = string.encode('cp1250', 'replace')
with open('log_2.txt', 'a') as log:
log.write(st+'\n')
log.write(string_output+'\n\n')
raw_input('Press Enter to exit')
感谢您就该主题提出任何建议。
答案 0 :(得分:0)
您可以使用以下方法获取编码: