您好我编写脚本解析来自Web的文本,我的输出文件必须是非ISO扩展ASCII文本,CRLF,LF行终止符 我怎么能把文件写成这个代码页?。
def save_file(potoczek, nazwapliku):
file = open(nazwapliku,"w")
file.write(potoczek)
file.close()
return()
#...
t1='"'+tab[0]+'\"\n'+naglowek+wykli(zawartosc0).encode('latin2')
t2='"'+tab[1]+'\"\n'+naglowek+wykli(zawartosc1).encode('latin2')
t3='"'+tab[2]+'\"\n'+naglowek+wykli(zawartosc2).encode('latin2')
t4='"'+tab[3]+'\"\n'+naglowek+wykli(zawartosc3).encode('latin2')
TRAKTOR = t1+t2+t3+t4
print udata
save_file(TRAKTOR,PLIK_SCIEZKA)
答案 0 :(得分:1)
这种情况下的一般规则是“在内部使用Unicode;在I / O边界处编码” - 您也可以轻松地将该哲学扩展到行结尾。
import io # for Python 2.6+; not needed in Python 3
def save_file(potoczek, nazwapliku): # data, filename
file = io.open(nazwapliku, mode="w", newline="\r\n") # in Python 3, just "open"
file.write(potoczek.encode('latin2'))
file.close()
return()
然后只需将数据构建为常规unicode字符串,用标准换行符(\n
)分隔,save_file函数将处理所需的转换。