尝试搜索字符串(电子邮件地址)并在1.66演出.dump文件(ashley madison)中打印找到的行。如果我将print(line)更改为print('true'),我会返回true,所以我知道它正在读取文件,但是当我尝试打印该行时,python崩溃而没有错误。请帮忙。 Windows Vista上的python 3.4(而不是使用数据库和导入,我使用它作为python的学习练习)
SELECT d.day, SUM(duration) as sum
FROM
days d
left join myTable m
on CONVERT(date, m.starttime) = d.day
GROUP BY d.day
答案 0 :(得分:1)
正如我所怀疑的那样,该文件的每一行都很长(如你所发现的那样,有近百万个字符)。大多数控制台都没有设置来处理这类事情,因此将该行写入文本文件是最好的选择。然后,您可以在文本编辑器或文字处理器中打开文件,并使用其搜索功能找到感兴趣的区域。
要显示包含某些周围文字字符的搜索字符串,可以使用正则表达式。
import re
...
# replace this:
'''
if 'email@address.com' in line:
#print ('true')
print (line)
'''
# with this:
print(*re.findall(r'(.{0,10}email@address\.com.{0,10})', line), sep='\n')
这将在搜索字符串之前和之后打印每个匹配最多10
个字符,并以换行符分隔。
示例:
>>> print(*re.findall(r'(.{0,10}str.{0,10})', 'hello this is a string with text and it is very strong stuff'), sep='\n')
this is a string with t
t is very strong stuff
答案 1 :(得分:-2)
将文件作为流打开,然后从流中读取,而不是将整个文件加载到RAM。使用io from the Python standard library。
with io.open('aminno_member_email.dump', 'r') as file:
...