1

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

数据截图

有向图可能是由于编码问题。(我不确定这些字符是否会保留在本站中)

29/07/2016 04:00:12 0.125143    

open现在,当我使用类似and将此类文件读入脚本时readlines,出现错误,正在读取

SyntaxError: EOL while scanning string literal

我知道(或可能查找)替换和正则表达式函数的用法,但我不能在我的脚本中执行它们。最大的问题是,在我包含或读取这样奇怪的字符的任何地方,都会发生错误,指向它被读取的那一行。所以我不能对他们做任何事

4

2 回答 2

1

你在读文件吗?如果是这样,请尝试使用正则表达式提取值,而不是删除多余的字符:

re.search(r'^([\d/: ]{19})', line).group(1)
re.search(r'([\d.]{7})', line).group(1)
于 2017-07-12T08:03:08.520 回答
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
lines =f.readlines()
for l in lines:
   ls_f =extract_numbers(l)
   # process them....
于 2017-07-28T16:05:30.997 回答