当前位置:首页 » 编程语言 » linecachepython

linecachepython

发布时间: 2023-12-08 17:10:28

① 输入python报错

这应该是你安装版本没有装全。一般情况下,输入python会出现你安装的python版本号,如果输入where python的话,可查看python安装在哪个目录下。

② python如何随机读取一行

#!/usr/bin/envpython
#coding:utf-8

defgetfilelines(filename,eol=' ',buffsize=4096):
"""计算给定文件有多少行"""
withopen(filename,'rb')ashandle:
linenum=0
buffer=handle.read(buffsize)
whilebuffer:
linenum+=buffer.count(eol)
buffer=handle.read(buffsize)
returnlinenum


defreadtline(filename,lineno,eol=" ",buffsize=4096):
"""读取文件的指定行"""
withopen(filename,'rb')ashandle:
readedlines=0
buffer=handle.read(buffsize)
whilebuffer:
thisblock=buffer.count(eol)
ifreadedlines<lineno<readedlines+thisblock:
#inthisblock:findthelinecontent,andreturnit
returnbuffer.split(eol)[lineno-readedlines-1]
eliflineno==readedlines+thisblock:
#needcontinuereadlinerestpart
part0=buffer.split(eol)[-1]
buffer=handle.read(buffsize)
part1=buffer.split(eol)[0]
returnpart0+part1
readedlines+=thisblock
buffer=handle.read(buffsize)
else:
raiseIndexError


defgetrandomline(filename):
"""读取文件的任意一行"""
importrandom
returnreadtline(
filename,
random.randint(0,getfilelines(filename)),
)


if__name__=="__main__":
importsys
importos
iflen(sys.argv)==1:
printgetrandomline("/home/tim/documents/users.csv")
else:
forfinfilter(os.path.isfile,sys.argv[1:]):
printgetrandomline(f)

对于超大文件建议用逐行或分块的方式处理;逐行处理可能慢一些,但编码更简单清晰一点;上面给出的是按分块方式处理的。

热点内容
数据库删除实例 发布:2025-08-23 14:21:27 浏览:314
qqandroid反编译 发布:2025-08-23 14:02:23 浏览:907
高级语言编译有哪些 发布:2025-08-23 13:23:49 浏览:573
win32编译 发布:2025-08-23 13:19:16 浏览:657
备份数据库日志 发布:2025-08-23 13:07:05 浏览:517
php模块开发 发布:2025-08-23 12:58:43 浏览:922
java读写数据库 发布:2025-08-23 12:41:40 浏览:401
php跨站脚本攻击漏洞 发布:2025-08-23 12:34:37 浏览:154
编译安装mysql时找不到文件 发布:2025-08-23 12:14:56 浏览:657
phpget号 发布:2025-08-23 12:09:52 浏览:737