Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python创建中文文件夹_Python_Beautifulsoup - Fatal编程技术网

使用python创建中文文件夹

使用python创建中文文件夹,python,beautifulsoup,Python,Beautifulsoup,我现在遇到一个关于汉字的问题。 我使用beautifulsoup提取数据,并希望创建一个文件夹,使用提取数据的名称。 数据如下: <A href="love">星座(1824)</A> 但在控制台中,它出现了: ÐÇ×ù(1824) OSError: [Errno 17] File exists: './vguagua_pic/\xc3\x90\xc3\x87\xc3\x97\xc3\xb9(1824)' 我在源代码的开头使用了“#”--编码:utf-8--”。 这

我现在遇到一个关于汉字的问题。 我使用beautifulsoup提取数据,并希望创建一个文件夹,使用提取数据的名称。 数据如下:

<A href="love">星座(1824)</A>
但在控制台中,它出现了:

ÐÇ×ù(1824)
OSError: [Errno 17] File exists: './vguagua_pic/\xc3\x90\xc3\x87\xc3\x97\xc3\xb9(1824)'
我在源代码的开头使用了“#”--编码:utf-8--”。 这一定是一些编码问题,任何人都可以提供一些关于python使用非英语工作的好材料吗

我想创建一个名为'星座(1824)' 我有:

当我发现一个名为“ÐÐù(1824)”的文件夹存在时,为什么它仍然会出现:

ÐÇ×ù(1824)
OSError: [Errno 17] File exists: './vguagua_pic/\xc3\x90\xc3\x87\xc3\x97\xc3\xb9(1824)'

thx

您的问题很可能是您的主机无法显示汉字

我在Win7上尝试了此操作,代码如下:

# -*- coding: utf-8 -*-
import os
os.mkdir(u'星座(1824)')
dos控制台将汉字显示为两个框,但是,当将其粘贴到此处时,它们会正确显示:

2012-06-25  07:59    <DIR>          星座(1824)
2012-06-2507:59星座(1824)

它们也会在Windows资源管理器中正确显示。

即使.py脚本是用UTF-8编写的,如果网页不是,解析的文本也可能不正确

该网页的编码实际上是GB-2312(或GB-18030),但BeautifulSoup错误地猜测该网页的编码为ISO-8859-1,并根据该错误假设,转换为UTF-8并导致mojibake。我们可以验证:

>>> b'\xc3\x90\xc3\x87\xc3\x97\xc3\xb9'.decode('utf8').encode('latin1').decode('gb2312')
'星座'

您可以将
from_encoding=“gb2312”
(在bs4中)或
from encoding=“gb2312”
(在3.x中)添加到BeautifulSoup构造函数以强制进行编码,如.encode('latin1')。decode('gb2312')u'\u661f\u5ea7'为什么我的与你的不一样?在beautifulsoup文档中,表示“在文档本身中发现的编码:例如,在XML声明或(对于HTML文档)http等价元标记中。“,在我想工作的网页中,确实有一个类似“”的元标记,所以bs应该猜对编码,对吗?