Python: 如何摆脱从文件中读取的非 ASCII 字符
Python: how to get rid of non-ascii characters being read from a file
我正在使用 python 处理一长串看起来像这样的数据
二合字母可能是由于编码问题。 (不知道本站会不会保留这些字符)
29/07/2016 04:00:12 0.125143
现在,当我使用 open
和 readlines
之类的东西将此类文件读入脚本时,出现错误,读取
SyntaxError: EOL while scanning string literal
我知道(或可能会查找其用法)替换和正则表达式函数,但我无法在我的脚本中执行它们。最大的问题是,在我包含或读取此类奇怪字符的任何地方,都会发生错误,指向读取的那一行。所以我不能对他们做什么。
您正在读取文件吗?如果是这样,请尝试使用正则表达式提取值,而不是删除多余的字符:
re.search(r'^([\d/: ]{19})', line).group(1)
re.search(r'([\d.]{7})', line).group(1)
我发现 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
lines =f.readlines()
for l in lines:
ls_f =extract_numbers(l)
# process them....
我正在使用 python 处理一长串看起来像这样的数据
二合字母可能是由于编码问题。 (不知道本站会不会保留这些字符)
29/07/2016 04:00:12 0.125143
现在,当我使用 open
和 readlines
之类的东西将此类文件读入脚本时,出现错误,读取
SyntaxError: EOL while scanning string literal
我知道(或可能会查找其用法)替换和正则表达式函数,但我无法在我的脚本中执行它们。最大的问题是,在我包含或读取此类奇怪字符的任何地方,都会发生错误,指向读取的那一行。所以我不能对他们做什么。
您正在读取文件吗?如果是这样,请尝试使用正则表达式提取值,而不是删除多余的字符:
re.search(r'^([\d/: ]{19})', line).group(1)
re.search(r'([\d.]{7})', line).group(1)
我发现 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
lines =f.readlines()
for l in lines:
ls_f =extract_numbers(l)
# process them....