使用Python将日文字符输出到文件

问题描述 投票:1回答:1

目标 - >我正在尝试使用Python自动执行查询执行过程

详细信息 - >我的源是Teradata数据库,目标是.txt文件

我正在编写Python代码以在Teradata中运行查询并将输出保存在.txt文件中。

问题 - >即使我能够运行查询并保存输出,日语字符显示为“\ x1a \ x1a”

对于前者当我运行查询时,我在Teradata SQL Assistant窗口中看到的输出是“爱してる”,而文本文件中的输出是“\ x1a \ x1a” 我正在使用“PYCharm”进行编码 我使用下面的代码来编写文件

#!/usr/bin/env python  
# -*- coding: utf-8 -*-  
import io  
import pyodbc  
import os  

#Establish connection with Teradata  
conn = pyodbc.connect('Coneection Parameters')  
conn.setencoding(encoding='utf-8')  
cur = conn.cursor()  
conn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')

#Reading Query  
scriptFile = open('query.sql','r')  
script = scriptFile.read()  
scriptFile.close()  

#Executing Query  
cur.execute(script)  
rows = cur.fetchall()  

#Writing the output to file  
with open('results.txt','w') as f:  
   print(rows)  
   f.write('%s\n' % rows)  

#Closing the Connection  
cur.close()#close the query writing  
conn.close() 

使用的变量 results.txt - >目标文件,我想写日文字符

样品输出我期待宠物用品

我在文件“results.txt” - > [('\ x1a \ x1a \ x1a \ x1a \ x1a',)]中获得的输出

python-3.x file-io utf-8 teradata
1个回答
3
投票

让我们解决标题问题。要将日语(或任何语言)输出到文件:

  1. 从Unicode字符串开始。
  2. 打开文件进行写入并指定编码。
  3. 将字符串写入文件。

使用Python 3的示例:

s = 'ペット用品'
with open('results.txt','w',encoding='utf8') as f:
    f.write(s)

您的rows不是Unicode字符串,而是包含具有错误字符串的元组的列表。这是你必须要解决的另一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.