Python 打印显示日语字符,但保存到csv时不显示

Python 打印显示日语字符,但保存到csv时不显示,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我已经写了一个漂亮的脚本,可以刮去日语HTML。一切似乎都正常,我没有收到任何错误消息。当我打印时,我得到: 連鎖に打ち勝たねばならない」と述べ拍手を浴び etc 但在同一脚本中,当我将输出保存在csv中时,我得到: \u5ddd\u3001\u6ce2\u4f50\u5834\uff13\u7279\u6d3e\u54e1\u304c\u8a71\u3057\u5408 etc 我假设问题出在代码的csv部分,但我不知道该怎么做 代码如下: def processData( pageFil

我已经写了一个漂亮的脚本,可以刮去日语HTML。一切似乎都正常,我没有收到任何错误消息。当我打印时,我得到:

連鎖に打ち勝たねばならない」と述べ拍手を浴び etc
但在同一脚本中,当我将输出保存在csv中时,我得到:

\u5ddd\u3001\u6ce2\u4f50\u5834\uff13\u7279\u6d3e\u54e1\u304c\u8a71\u3057\u5408 etc
我假设问题出在代码的csv部分,但我不知道该怎么做

代码如下:

def processData( pageFile ):
    f = open(pageFile, "r")
    page = f.read()
    f.close()
    soup = BeautifulSoup(page, 'html.parser')
    metaData = soup.find_all("div", {'class': 'detail001'})
    one = [ ]
    for html in metaData:
        text = BeautifulSoup(str(html).strip().replace("\n", ""),features="html.parser")
        text = text.get_text()
        one.append(text.strip())
    csvfile = open(dir2 + ".csv".encode("utf-8"), 'ab')
    writer = csv.writer(csvfile)
    for ones in zip(one):
        writer.writerow([one])
    csvfile.close()
dir1 = "/home/sveisa/"
dir2 = "test2"
dir = dir1 + dir2
csvFile = dir2 + ".csv"
csvfile = open(csvFile.encode("utf-8"), 'w')
writer = csv.writer(csvfile)
writer.writerow(["one"])
csvfile.close()
fileList = os.listdir(dir)
totalLen = len(fileList)
for htmlFile in fileList:
    path = os.path.join(dir, htmlFile)
    processData(path)

我正在使用Ubuntu。

这是关于
编码=
,需要分配给您的
csv
,如下所示:

打开(“data.csv”,“w',encoding=“UTF-8”)作为f:
writer=csv.writer(f)
writer.writerow(
“\u5ddd\u3001\u6ce2\u4f50\u5834\uff13\u7279\u6d3e\u54e1\u304c\u8a71\u3057\u5408”)
输出内容:

川、波佐場3特派員が話し合

您需要将
encoding=
参数分配给
csv
Oh感谢您的响应。我该怎么做?我尝试了类似的方法,但不知道该在代码中编写什么。这不起作用:writer=csv.writer(csvfile.encode(“utf-8”)@lsak检查我下面的答案。请不要编辑您的帖子,包括建议的解决方案@Isak@SIM ok,我现在澄清了原始帖子,不会再做其他编辑谢谢!当我尝试这个时,我得到了一个TypeError,我使用的是Python 2.7,这就是为什么?@Isak哪个
错误
你得到的。事实上,你应该考虑移动到Python 3,因为2已经达到了生命的尽头。但这个错误与Python版本无关。你能指出错误吗?谢谢!我得到这个错误:TypeError:“encoding”是一个无效的关键字参数function@Isak您的帖子,包括您正在使用的当前代码。正如我看到的,您将参数插入了错误的位置。@我认为它应该类似于下面的
open(csvFile,'w',encoding=“UTF-8”)
。还要注意的是
w
wb
不同,后者的意思是
write bytes