添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Python:如何摆脱从文件中读取的非ascii字符

1 人关注

我正在用python处理一长串数据,这些数据看起来像这样

这些二维码可能是由于编码问题造成的。(我不确定这些字符是否会被保留在这个网站上)。

29/07/2016 04:00:12 0.125143

现在,当我用openreadlines之类的方法将这样的文件读入脚本时,出现了一个错误,读作

SyntaxError: EOL while scanning string literal

我知道(或可能查到)替换和regex函数的用法,但我不能在我的脚本中这样做。最大的问题是,我在任何地方包含或读取这种奇怪的字符,都会发生错误,而且是在读取的那一行。所以我不能对它们做任何事情

python
encoding
replace
data-processing
digraphs
Violapterin
Violapterin
发布于 2017-07-12
2 个回答
bakatrouble
bakatrouble
发布于 2017-07-29
0 人赞同

你在读一个文件吗?如果是的话,请尝试使用重合表达式提取数值,而不是删除多余的字符。

re.search(r'^([\d/: ]{19})', line).group(1)
re.search(r'([\d.]{7})', line).group(1)
谢谢你提供更多信息,但抱歉我没有时间彻底测试(但我已经给你加了票)。
Violapterin
Violapterin
发布于 2017-07-29
已采纳
0 人赞同

我发现 re.findall 有效。(很抱歉我没有时间去测试所有其他的方法,因为这项工作的意义已经消失了,我甚至忘记了这个问题本身)。

def extract_numbers(str_i):
   pat="(\d+)/(\d+)/(\d+)\D*(\d+):(\d+):(\d+)\D*(\d+)\.(\d+)"
   match_h = re.findall(pat, str_i)
   return match_h[0]
# ....
# `f` is the handle of the file in question