首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将输入与文件进行比较

将输入与文件进行比较
EN

Stack Overflow用户
提问于 2017-10-16 02:18:57
回答 2查看 198关注 0票数 0

下面是将文件第二行与输入进行比较的代码。仅当文件中没有其他内容时才有效,当文件中有许多行文本时,我如何更改代码以使其仍然有效。

代码语言:javascript
运行
复制
name = input("Enter name: ")
with open("numbers") as f:
    lines = f.readlines() # a list of all the lines
    if lines[1] == name: # the second line (0 indexing)
EN

回答 2

Stack Overflow用户

发布于 2017-10-16 02:25:40

你写了if lines[1] == name: foo()。要将其应用于所有行,请使用:

代码语言:javascript
运行
复制
    lines = f.readlines()
    for line in lines:
        if line.rstrip() == name:
            foo()

rstrip()删除了末尾的空格,如换行符。

更简洁地说,如果您正在处理每一行并且不需要索引,那么您可以遍历文件而不是readline返回的列表:

代码语言:javascript
运行
复制
with open("numbers") as f:
    for line in f:
        if line.rstrip() == name:
            foo()
票数 0
EN

Stack Overflow用户

发布于 2017-10-16 02:40:22

当你的文件只有2行时,第二行就是你所期望的,这样你的程序就可以工作了。

当超过2行时,第二行将以新行字符\n结束。在进行比较之前,请确保去掉最后一个字符。

if lines[1].rstrip("\n") == name:就可以了。

感谢@Rawing

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46758445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档