2015-07-01 45 views
1

我有一个运行Python脚本的批处理文件。 Python脚本将文本写入文本文件。从批处理文件启动时,Python脚本不会将希腊字符写入文本文件

现在,通常情况下,它可以很好地工作,即使带有重音字母(如à或ö),但是希腊字母或希伯来字符也不应写入。然后它不写任何东西。

如果我从IDLE运行Python脚本,任何类型的文本都会写入该文件,并且在Shell窗口中不会显示任何错误。

这里是我的测试代码: 的Python:

# -*- coding: utf-8 -*- 
import codecs 
akasi='test' + unicode('aergשריש','utf-8') 
print akasi 
text_file = codecs.open('Temp.txt', 'a', encoding='utf-8') 
text_file.write(akasi) 
text_file.close() 

批处理文件

@Echo Off 
cd /D C: 
start /min /wait python "C:\Python27\Scripts\Temp03_27_310.py" 

我在做什么错?

由于提前, 安吉拉

回答

0

你正在做的工作太多了 - 没有必要编码数据因为你的第一个注释行指定它已经在UTF-8。

# -*- coding: utf-8 -*- 
import codecs 
akasi='test aergשריש' 
print akasi 
with open('temp.txt', 'wb') as fh: 
    fh.write(akasi) 
+0

那么,实际脚本的数据不是。 :)但是,我可以按照你的方向解决问题,现在它似乎可以工作(双手交叉)。非常感谢。 – Angela1234

+0

注意:此解决方案适用于Python 2.7。对于Python 3,您必须在打开文件时明确指定编码:'open('temp.txt','w',encoding ='utf-8')为fh:' –

相关问题