鱼C论坛

 找回密码
 立即注册
查看: 1388|回复: 7

如何历遍文件的每一行

[复制链接]
发表于 2018-3-7 18:43:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
不会历遍文件中的每一行,自己百度捉摸了很久,还是不会。

要求:1.在一个10行的文件中,每一行都是 姓名:电话号码  这种格式。 输入  名字(号码),打印该行的信息。
  


幼儿园1级的代码:

name = open('lianxiti001.txt','r+')
information = name.read()
print(information)

user1 = input("which name/number do you want to search:")
QUIT = 1

while QUIT ==1:
    for index in range(10)
        user2 = next(name)
        if user1 in user2:
            print(user2)
        else:
            user3 = input("nobody here, try another one~")
             if user3 =="QUIT":
                QUIT = 0


附属文件的内容:

校长:137XXXXXXXX
苹果:131XXXXXXXX
菠萝:125XXXXXXXX       
橡胶:156XXXXXXXX
凤梨:176XXXXXXXX
香梨:158XXXXXXXX
樱桃:196XXXXXXXX
脐橙:174XXXXXXXX
甘蔗:142XXXXXXXX
西瓜:161XXXXXXXX



问题: 我百度了那个 图片上的,还是不懂 那个  index 是啥。
前辈们回复的稍微详细点,文件这一块不咋懂。

这是我百度的

这是我百度的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-7 19:46:48 | 显示全部楼层
name = open('lianxiti001.txt','r+')
for each in name:
each就是每一行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 19:56:27 | 显示全部楼层
for i in name.readlines():
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 20:24:44 | 显示全部楼层
chakyam 发表于 2018-3-7 19:56
for i in name.readlines():

不行,这个会报错的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 21:22:02 | 显示全部楼层
精致的男孩 发表于 2018-3-7 20:24
不行,这个会报错的

报错贴出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-8 11:19:58 | 显示全部楼层

F:\exercise\venv3\Scripts\python.exe "F:/exercise/venv3/python idle/009.py"
校长:137XXXXXXXX
苹果:131XXXXXXXX
菠萝:125XXXXXXXX       
橡胶:156XXXXXXXX
凤梨:176XXXXXXXX
香梨:158XXXXXXXX
樱桃:196XXXXXXXX
脐橙:174XXXXXXXX
甘蔗:142XXXXXXXX
西瓜:161XXXXXXXX
which name/number do you want to search:苹果

    不是报错,就是没有输出了。我索引苹果,没有吧哪一行的信息打印出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-8 11:53:57 | 显示全部楼层
这是我改进后的代码:
name = open('lianxiti001.txt','r+')
all_information = name.read()
print(all_information)
user1 = input("which do you want to search:")
QUIT = 1
str1 = 'QIUT'
while QUIT == 1:
    for i in range(0,10):
        line1 = next(name)
        if user1 in line1:
            print('result :',line1)
        else:
            user2 = input("wrong input, try another:")
        if user2 == str1:
            QUIT = 2
            print("Search is over")
    name.seek(0,0)

结果还是不理想,直接把结果贴出来,大家指点下:


F:\exercise\venv3\Scripts\python.exe "F:/exercise/venv3/python idle/009.py"
校长:137XXXXXXXX
苹果:131XXXXXXXX
菠萝:125XXXXXXXX       
橡胶:156XXXXXXXX
凤梨:176XXXXXXXX
香梨:158XXXXXXXX
樱桃:196XXXXXXXX
脐橙:174XXXXXXXX
甘蔗:142XXXXXXXX
西瓜:161XXXXXXXX
which do you want to search:161
Traceback (most recent call last):
  File "F:/exercise/venv3/python idle/009.py", line 9, in <module>
    line1 = next(name)
StopIteration

Process finished with exit code 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-10 10:37:40 | 显示全部楼层
经过昨天前天两天的努力,看到这个帖子也没回复了,我就把我写的贴上来了
name = open('lianxiti001.txt','r+')
user1 = input('which do you want to search:')
str1 = "QUIT"
name.seek(0,0)
while 1:

    for i in range(0,10):
        line1 = name.readline()
        if user1 in line1:
            print(line1)
        else:
            print('not in the this line')

    name.seek(0,0)
    user2 = input("try again or QUIT:")
    if user2 == str1:

        print ("over")
        break

    for i in range(0,10):
        line2 = name.readline()
        if user2 in line2:
            print(line2)
        else:
            print("not this line")


name.close()

这里有个BUG,就是在读取文件时,没读取一行,然后检索,没有想要的信息他会打印 ‘not in this line’,其实我想用的是指针定位,条件为指针读取到文档最后一行,还是没有需要检索的信息,就打印那个,但是奈何能力有限,不会,所以只能先这样。待我学成归来,定当修复此BUG
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-28 09:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表