相关疑难解决方法(0)

从Python中删除字符串标点符号的最佳方法

似乎应该有一个比以下更简单的方法:

import string
s = "string. With. Punctuation?" # Sample string 
out = s.translate(string.maketrans("",""), string.punctuation)
Run Code Online (Sandbox Code Playgroud)

在那儿?

python string punctuation

578
推荐指数
20
解决办法
65万
查看次数

用单个空格替换非ASCII字符

我需要用空格替换所有非ASCII(\ x00-\x7F)字符.我很惊讶这在Python中并不容易,除非我遗漏了一些东西.以下函数只删除所有非ASCII字符:

def remove_non_ascii_1(text):

    return ''.join(i for i in text if ord(i)<128)
Run Code Online (Sandbox Code Playgroud)

并且这个用字符代码点中的字节数替换非ASCII字符和空格量(即字符被3个空格替换):

def remove_non_ascii_2(text):

    return re.sub(r'[^\x00-\x7F]',' ', text)
Run Code Online (Sandbox Code Playgroud)

如何用单个空格替换所有非ASCII字符?

无数 类似 SO 问题, 地址 的字符 替换 反对 剥离,进一步解决所有非ASCII字符不是一个特定的字符.

python unicode encoding ascii

228
推荐指数
6
解决办法
18万
查看次数

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万
查看次数

ValueError:unichr()arg不在范围内(0x10000)(窄Python构建)

我试图将html实体转换为unichar,html实体是&#976918; 当我尝试执行以下操作时:

unichr(int(976918))
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

ValueError: unichr() arg not in range(0x10000) (narrow Python build)
Run Code Online (Sandbox Code Playgroud)

似乎它超出了unichar的范围转换.

html python

19
推荐指数
3
解决办法
9460
查看次数

如何在python中删除转义序列,如'\ xe2'或'\ x0c'

我正在研究一个项目(基于内容的搜索),因为我在Ubuntu中使用'pdftotext'命令行实用程序,它将所有文本从pdf写入一些文本文件.但是它也写了子弹,现在当我正在读取文件来索引每个单词时,它也会得到一些索引的转义序列(比如'\ x01').我知道它是因为子弹(•).

我只想要文本,所以有没有办法删除这个转义序列.我做过这样的事情

escape_char = re.compile('\+x[0123456789abcdef]*')
re.sub(escape_char, " ", string)
Run Code Online (Sandbox Code Playgroud)

但这不会删除转义序列

提前致谢.

python regex escaping string-literals

8
推荐指数
1
解决办法
7671
查看次数

Python - 如何从字符串中删除隐藏的符号?

有时候我有一个带有奇怪字符的字符串.它们在浏览器中不可见,但是是字符串的一部分,并以len()计算.我怎么能摆脱它?Strip()删除正常空间但不删除那些符号.

python

6
推荐指数
3
解决办法
9134
查看次数

在ply的正则表达式中匹配unicode

我匹配标识符,但现在我遇到了问题:我的标识符允许包含unicode字符.因此,旧的做事方式是不够的:

t_IDENTIFIER = r"[A-Za-z](\\.|[A-Za-z_0-9])*"
Run Code Online (Sandbox Code Playgroud)

我的标记语言解析器中,我通过允许除了我明确使用的那些字符之外的所有字符来匹配unicode字符,因为我的标记语言只有两个或三个我需要以这种方式转义的字符.

如何将所有unicode字符与python正则表达式和ply匹配?这也是一个好主意吗?

我想让人们在他们的程序中使用像Ω»«°foo²väliπ这样的标识符作为标识符(变量名等).哎呀!我希望人们可以用他们自己的语言编写程序,如果它是实用的!无论如何,unicode现在在各种各样的地方得到支持,它应该传播.

编辑:POSIX字符类似乎不被python正则表达式识别.

>>> import re
>>> item = re.compile(r'[[:word:]]')
>>> print item.match('e')
None
Run Code Online (Sandbox Code Playgroud)

编辑:更好地解释我需要的东西.我需要一个正则表达式匹配所有unicode可打印字符,但根本不匹配ASCII字符.

编辑:r"\ w"做了我想要的东西,但它不匹配«»,我还需要一个与数字不匹配的正则表达式.

python regex unicode ply character-properties

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

如何在Python中的非打印ascii字符处分割线

如何在 Python 中以非打印 ascii 字符(例如长减号十六进制 0x97 ,八进制 227 )分割一行?我不需要角色本身。其后的信息将保存为变量。

python ascii split extended-ascii

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

如何从python中的字符串中删除\

我无法让replace()工作

我试过my_string.replace('\\', '')re.sub('\\', '', my_string),但没有一个工作.

我以为\是反斜杠的转义码,我错了吗?

有问题的字符串看起来像

'<2011315123.04C6DACE618A7C2763810@\x82\xb1\x82\xea\x82\xa9\x82\xe7\x8c\xa9\x82\xa6\x82\xe9\x82\xbe\x82\xeb\x82\xa4>'

要么 print my_string <2011315123.04C6DACE618A7C2763810@????????????>

是的,它应该看起来像垃圾,但我宁愿得到 '<2011315123.04C6DACE618A7C2763810@82b182ea82a982e78ca982a682e982be82eb82a4>'

python string replace backslash

3
推荐指数
1
解决办法
6171
查看次数

Python Pandas:标记数据时出错。C 错误:读取 1GB CSV 文件时字符串中的 EOF 开始

我正在以 10,000 行的块读取 1 GB CSV 文件。该文件有 1106012 行和 171 列,其他较小的文件没有显示任何错误并成功完成,但是当我读取这个 1 GB 文件时,它每次都在行号 1106011 上显示错误,这是文件的倒数第二行,我可以手动删除该行,但这不是解决方案,因为我有数百个相同大小的其他文件,我无法手动修复所有行。任何人都可以帮我解决这个问题。

def extract_csv_to_sql(input_file_name, header_row, size_of_chunk, eachRow):

        df = pd.read_csv(input_file_name,
                         header=None,
                         nrows=size_of_chunk,
                         skiprows=eachRow,
                         low_memory=False,
                         error_bad_lines=False,
                         sep=',')
                         # engine='python'
                         # quoting=csv.QUOTE_NONE
                         # encoding='utf-8'

        df.columns = header_row
        df = df.drop_duplicates(keep='first')
        df = df.apply(lambda x: x.astype(str).str.lower())

        return df
Run Code Online (Sandbox Code Playgroud)

然后我在循环中调用这个函数并且工作得很好。

huge_chunk_return = extract_csv_to_sql(huge_input_filename, huge_header_row, the_size_of_chunk_H, each_Row_H)
Run Code Online (Sandbox Code Playgroud)

在将多个 csv 文件读取到 HDF5 时读取了这个Pandas ParserError EOF 字符,字符串中的这个read_csv() & EOF 字符导致解析问题,这个https://github.com/pandas-dev/pandas/issues/11654等等尝试包含 read_csv 参数,例如

引擎='蟒蛇'

quoting=csv.QUOTE_NONE …

python csv pandas

3
推荐指数
2
解决办法
6808
查看次数

Python:从csv中删除非ascii字符

我有一个 csv 文件,4000 条记录中只有 4 条包含一些非 ASCII 字符。例如

['com.manager', '2016012300', '16.1.23', 'en', 'kinzie', '2015-04-11T17:36:23Z', '1428773783781', '2016-03-11T09:53:45Z', 'df', '5', "\xa5\x06`'", '\xc0\x03"', '\xa2{\xac ===]\xa9}\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7\xf7&gt;', '', '', '', 'https://play.google.com/apps/publish?account=sd#ReviewDetailsPlace:p=com.manager&reviewid=gp:AOqpTOEcQQGmjFcd-bFfU372DTrxh']
Run Code Online (Sandbox Code Playgroud)

我正在使用以下 python 代码来读取 csv

with open('/Users/duttaam/Downloads/test1.csv', 'rU') as csvfile:
    reader_obj = csv.reader(x.replace('\0', '') for x in csvfile)
    rownum=0
    for row in reader_obj:
        rownum += 1
        if len(row) != 16:
            print rownum
            print row 
Run Code Online (Sandbox Code Playgroud)

对于四行,阅读器显示不一致的列号。但是当我计算这些行中的分隔符(,)时,它显示得很好。我能看到的唯一问题是非 ascii 字符,如上行所示的示例行。我猜这些是一些表情符号转换成一些字符。

我想出了一个从字符串中删除不可打印字符的函数,如何将其应用于整个 csv?(感谢以下帖子:Stripping non printable characters from a string in python

def removeSpecialcahr(s):
        printable = set(string.printable)
        return …
Run Code Online (Sandbox Code Playgroud)

python csv non-ascii-characters

0
推荐指数
1
解决办法
3841
查看次数