python如何取出指定文本所在的行

 关闭 [复制链接]
作者: Hmily | 时间: 2021-5-21 21:31:39 | 已解决|
2 152
结帖率:100% (1/1)
发表于 2021-5-21 21:31:39| 显示全部楼层 |阅读模式
5金币
例如文本
a
b
c
d
e

然后
输入字母 c
返回 取出行数是3(也就是第三行)

这样怎么做

最佳答案

查看完整内容

直接读入文件,然后循环迭代,判断是否存在“c”,是就打印数值然后跳出循环
发表于 2021-5-21 21:31:40| 显示全部楼层
直接读入文件,然后循环迭代,判断是否存在“c”,是就打印数值然后跳出循环
[Python] 纯文本查看 复制代码
f = open("1.txt")
a = 0
for line in f:
    a = a + 1
    if "c" in line:
        print("在第{}行".format(a))
        break
f.close()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

结帖率:100% (1/1)
 楼主| 发表于 2021-5-22 00:08:51| 显示全部楼层


捏嘛的,等了半天人木有几个,自己捣鼓好了,发出来大家一起看下叭  -.-
#先导入python自带的一个模块,需要用到它的一个功能,这个功能你们也可不要,是用来打印你要取的字符串的那一行的所有内容,在下面会说
import linecache

zimu = input("请输入一个字母:")

#这个"sfz"文件是上面我说的a,b,c,d文本
#读取这个文件先
file = open("sfz","r",encoding="utf-8")

#然后转成数组,用[wenben]这个变量接收这个数组
wenben = file.readlines()

#迭代数组
i=0
while i < len(wenben):#用wenben2  不断接收 数组[wenben]的内容
    wenben2 = wenben#然后如果你输入的字母中,和wenben2对应上了,就直接打印出来
    if zimu in wenben2:#下面这个是打印出,你要找的字符串在第几行
        print("在第几行:" + str(i + 1))#下面这个是打印那一行的所有内容出来,这个功能就是最上面导入模块提供的那个方法
        print(linecache.getline("sfz",i+1),end="")
i=i+1
file.close()


评分

参与人数 1好评 +1 金币 +2 收起 理由
笑客 + 1 + 2 新技能已get√

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

!jz_fbzt! 快速回复 !jz_sctz! !jz_fhlb! 按钮
快速回复 返回列表 返回顶部