问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

python 文件内容操作,如一个文件100万条数据,查询相同行数

发布网友 发布时间:2022-04-26 23:33

我来回答

5个回答

热心网友 时间:2022-04-18 06:18

使用open函数逐行读取文件,依次对比,如包含要求字符串,则数量累加1,读取完成后可统计出行数,代码如下:

n = 0
for line in open('filename','r'):
    if '固定字符串' in line:
        n += 1

print(n)

说明:

使用 for line in open这种方式可以提高代码效率,如需要更复杂统计,例如重复行,则可以使用hash函数,把行hash值存入列表,再做统计。

热心网友 时间:2022-04-18 07:36

100万条,还是不是很大。建议用C语言。把100万条加载到内存里,然后字符串依次比较,也是很快的。具体是先read到内存里,然后把每个回车统计一下,建立一个行首字符的索引。

正常的做法是做索引的。在生成记录时,自动将关键词索引造出来。查询时,只查询索引就可以了。

这样,即使是几千万条记录,查询也是很快。1,2,3就是一个关键词。

热心网友 时间:2022-04-18 09:10

我总感觉你这标题和内部描述不是一个问题,
不知道理解的对不对,执行如下代码(python2.X)
foid=open('文件名',‘r’) #打开你的文件;
fov=open('结果',‘w’) #考虑到结果可能比较多,写入文件比较好;
n=0
for line in foid:
if not line.find('1,2,3')==-1: #用find查找这一行中是否有目标字符串;
n=n+1 #如果有该字符串,计数
fov.write(line) #保存有这个字符串的那一行数据,如果结果不多可以直接print line
foid.close()
fov.close()
print n

这样就找出所以包含'1,2,3'这个字符串的数据了,n是含有这个字符串的行数,如果在循环内部执行print n,可以得到这个字符串都在第几行出现过

热心网友 时间:2022-04-18 11:02

文件过大,考虑数据库。当作字符处理很占内存的。

1、str.count
2、你可以用sqlite来加载这个文件。用select的方式去查总数

热心网友 时间:2022-04-18 13:10

CONDSTR = '1,2,3'

def match(ln, condstr=CONDSTR):
''' 指定的串是否在行中 '''
return condstr in ln

cnt = 0
with open(thesrcfile, 'rt') as handle:
for ln in handle:
if match(ln):
cnt += 1追问Warning: 'with' will become a reserved keyword in Python 2.6
File "W:\templet_ws\PythonTest\PyTest\readtxt1.py", line 11
with open('e:\log.txt','rt')as handle:
^
SyntaxError: invalid syntax
貌似不支持。。。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
变压器主保护与后备保护知识全解 租房违约金通常是多少呢? 租房合同的违约金一般设定为多少? 2007年12月份在新华人寿买的红双喜保险A款分红型,我想退保怎么办 苹果拍照左上角的闪电如何使用的 苹果手机相机闪光灯怎么开关 刀塔传奇怎么刷神器刀塔传奇巫妖神器任务怎么做 笑傲江湖,陈丹丹的小品插曲的英文歌是什么 ...的转动的长方形,显示禁止PING入,请问是什么意思 瑞星提示我:80.74.180.29禁止PING入,这是什么意思啊? 关于Python的文件操作问题,求大神们给出具体代码~ 感激不尽~_百度知 ... 20日我也是在12306定了火车票,显示扣款成功,但没有订单。12306说要银行的订单号,银行说没有。怎么办? 为什么在12306上订单成功了,银行也已经扣款了,邮件也有收到提醒,但为什么在12306的软件上查 12306网上显示已退款到建行卡可是钱一直没到帐怎么办 12306购票时取消订单了,但是银行付款成功了! 12306上买了票,用支付宝,退票后却说已成功退至银行,如已超过15个工作日尚未到 在12306显示支付成功了,但银行卡没扣钱是怎么回事 在12306购买车票银行卡已经付钱了,却不显示车票怎么办 12306订票时总是显示上次输入的银行账号怎么办 我想请问一下我想在电脑上制作一个表格写字然后打印出来怎么做? 今天再12306网上订票,结果银行提醒已经付款成功,已经扣掉款了。可是我却没收任何提醒,短信和邮件都没有 12306订票,银行扣费成功,在已完成订单中查不到,想重新购票显示“已购买”(详细看图),是怎么回事? 我要用EXCEL做个表格打印出来怎么做 在12306退票,显示已成功退至银行,但是没收到款啊 火车票网上订票,第一次支付时,银行卡里的钱显示已经扣了,但票显示未支付。 我在12306用信用卡买的车票退款后银行已经入帐,怎么还没收到退款 支付宝退款显示银行已入帐。。但银行卡里却没收到。。是为什么? 退款显示银行已入账,后钱多久能收到 为什么我在支付宝微信里买的火车票退款一直不到,软件显示银行已入账 会计专业和学前教育专业哪个的就业前景好些?? python中对类的操作,怎么增加或删除类中的对象呢?比如下面这个题_百 ... 360安全浏览器兼容模式下 python文件操作问题? 360浏览器7.1兼容性模式是IE的哪个版本内核 青岛买第二套房贷款是否好办?我第一套房用公积金贷款买的,房贷还没还上。想买第二套房。 二套房贷款利率上浮大概多少 二套房商业贷款利率是否上浮? 青岛购买第二套房政策 中国移动如何查询自己有没有订流量套餐? 怎么分别查看自己套餐流量使用 怎么查看自己的联通流量套餐是多少 怎样查自己套餐所包含的流量? qq邮箱内的联系人如何删除 刚出生的婴儿手脚脱皮为什么 新生儿为什么会出现蜕皮?是什么原因引起的? 新生儿出现脱皮现象,是什么原因? 新生儿为什么会蜕皮?蜕皮后可以洗澡吗? 跑步时穿什么鞋子比较合适? 工伤赔偿协议书格式是怎样的 以“拥抱幸福”为题的作文??
  • 焦点

最新推荐

猜你喜欢

热门推荐