相关疑难解决方法(0)

Python:从字符串中删除\ xa0?

我目前正在使用Beautiful Soup来解析HTML文件并调用get_text(),但似乎我留下了很多代表空格的\ xa0 Unicode.有没有一种有效的方法可以在Python 2.7中删除所有这些,并将它们更改为空格?我想更普遍的问题是,有没有办法删除Unicode格式?

我尝试使用:line = line.replace(u'\xa0',' '),正如另一个线程所建议的,但是将\ xa0改为你的,所以现在我到处都是"u".):

编辑:问题似乎解决了str.replace(u'\xa0', ' ').encode('utf-8'),但只是.encode('utf-8')没有replace()似乎导致它吐出甚至更奇怪的字符,例如\ xc2.有谁能解释一下?

python unicode parsing

204
推荐指数
11
解决办法
21万
查看次数

如何检查Python中的字符串是否为ASCII?

我想检查一个字符串是否是ASCII格式.

我知道ord(),但是当我尝试时ord('é'),我有TypeError: ord() expected a character, but string of length 2 found.我知道它是由我构建Python的方式引起的(如ord()文档中所述).

还有其他方法可以检查吗?

python string unicode ascii

197
推荐指数
9
解决办法
19万
查看次数

NameError:未定义全局名称'unicode' - 在Python 3中

我正在尝试使用名为bidi的Python包.在这个包中的模块(algorithm.py)中,有一些行给出了错误,尽管它是包的一部分.

以下是这些行:

# utf-8 ? we need unicode
if isinstance(unicode_or_str, unicode):
    text = unicode_or_str
    decoded = False
else:
    text = unicode_or_str.decode(encoding)
    decoded = True
Run Code Online (Sandbox Code Playgroud)

这是错误信息:

Traceback (most recent call last):
  File "<pyshell#25>", line 1, in <module>
    bidi_text = get_display(reshaped_text)
  File "C:\Python33\lib\site-packages\python_bidi-0.3.4-py3.3.egg\bidi\algorithm.py",   line 602, in get_display
    if isinstance(unicode_or_str, unicode):
NameError: global name 'unicode' is not defined
Run Code Online (Sandbox Code Playgroud)

我应该如何重写这部分代码,以便它在Python3中工作?如果有人使用Python 3的bidi包,请告诉我他们是否发现了类似的问题.我感谢您的帮助.

python unicode bidi nameerror python-3.x

120
推荐指数
3
解决办法
16万
查看次数

如何使python解释器正确处理字符串操作中的非ASCII字符?

我有一个看起来像这样的字符串:

6 918 417 712
Run Code Online (Sandbox Code Playgroud)

修剪这个字符串的明确方法(据我理解Python)只是说字符串在一个名为的变量中s,我们得到:

s.replace('Â ', '')
Run Code Online (Sandbox Code Playgroud)

这应该够了吧.但当然它抱怨'\xc2'文件blabla.py 中的非ASCII字符未编码.

我永远不会理解如何在不同的编码之间切换.

这是代码,它实际上与上面相同,但现在它在上下文中.该文件在记事本中保存为UTF-8,并具有以下标头:

#!/usr/bin/python2.4
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

代码:

f = urllib.urlopen(url)

soup = BeautifulSoup(f)

s = soup.find('div', {'id':'main_count'})

#making a print 's' here goes well. it shows 6Â 918Â 417Â 712

s.replace('Â ','')

save_main_count(s)
Run Code Online (Sandbox Code Playgroud)

它不过是s.replace......

python unicode

100
推荐指数
6
解决办法
17万
查看次数

如何删除非ASCII字符但使用Python留下句点和空格?

我正在使用.txt文件.我想要一个文件的字符串,没有非ASCII字符.但是,我想留下空格和句号.目前,我也正在剥离它们.这是代码:

def onlyascii(char):
    if ord(char) < 48 or ord(char) > 127: return ''
    else: return char

def get_my_string(file_path):
    f=open(file_path,'r')
    data=f.read()
    f.close()
    filtered_data=filter(onlyascii, data)
    filtered_data = filtered_data.lower()
    return filtered_data
Run Code Online (Sandbox Code Playgroud)

我应该如何修改onlyascii()以留出空格和句点?我想这不是太复杂但我无法弄明白.

python unicode text ascii filter

86
推荐指数
5
解决办法
16万
查看次数

从python中的字符串中剥离不可打印的字符

我用来跑

$s =~ s/[^[:print:]]//g;
Run Code Online (Sandbox Code Playgroud)

在Perl上摆脱不可打印的字符.

在Python中没有POSIX正则表达式类,我不能写[:print:]让它意味着我想要的东西.我知道在Python中无法检测字符是否可打印.

你会怎么做?

编辑:它也必须支持Unicode字符.string.printable方式很乐意将它们从输出中剥离出来.对于任何unicode字符,curses.ascii.isprint都将返回false.

python string non-printable

81
推荐指数
9
解决办法
11万
查看次数

在Python中没有[]的列表理解

加入清单:

>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'
Run Code Online (Sandbox Code Playgroud)

join 必须采取迭代.

显然,join这个论点是[ str(_) for _ in xrange(10) ],这是一个列表理解.

看这个:

>>>''.join( str(_) for _ in xrange(10) )
'0123456789'
Run Code Online (Sandbox Code Playgroud)

现在,join这个论点只是str(_) for _ in xrange(10),不[],但结果是一样的.

为什么?是否str(_) for _ in xrange(10)也会产生一个列表或一个可迭代?

python list-comprehension

76
推荐指数
4
解决办法
1万
查看次数

删除python2.7中字符串中的unicode\u2012字符

我在python2.7中有一个像这样的字符串,

 This is some \u03c0 text that has to be cleaned\u2026! it\u0027s annoying!
Run Code Online (Sandbox Code Playgroud)

我怎么把它转换成这个,

This is some text that has to be cleaned! its annoying!
Run Code Online (Sandbox Code Playgroud)

python python-2.7 unicode-escapes python-unicode

37
推荐指数
1
解决办法
6万
查看次数

有效地替换坏人物

我经常使用包含以下字符的utf-8文本:

\ XC2\X99

\ XC2\X95

\ XC2\X85

等等

这些字符混淆了我使用的其他库,因此需要更换.

什么是有效的方法,而不是:

text.replace('\xc2\x99', ' ').replace('\xc2\x85, '...')
Run Code Online (Sandbox Code Playgroud)

python string unicode replace

24
推荐指数
3
解决办法
4万
查看次数

Python - Unicode到ASCII转换

我无法将以下Unicode转换为ASCII而不会丢失数据:

u'ABRA\xc3O JOS\xc9'
Run Code Online (Sandbox Code Playgroud)

我试过了encode,decode他们不会这样做.

有没有人有建议?

python unicode encoding ascii

13
推荐指数
1
解决办法
4万
查看次数