readline 循环在空 space Python 中进行评论

readline loop commenting in an empty space Python

图片显示其他一切正常,而不是代码中有一个空的 space,这使得程序打印“无效”。我不知道空的 space 是从哪里来的,有什么建议吗?

selec1 = open("strings.txt","r")
selec2 = "bob"
while selec2:
    selec2 = selec1.readline().replace("\n","")
    if selec2.isalnum() == True:
        print(selec2,"was ok.")
    if selec2.isalnum() == False:
        print(selec2,"was invalid.")

我会按行重复执行此操作,这可能是预期的

例如

with open("strings.txt") as fh:  # close file when leaving scope
    for line in fh:              # file-likes are iterable by-lines
        line = line.strip()      # remove trailing newline
        print("{} was {}.".format(line, "ok" if line.isalnum() else "invalid"))

这有一些有用的东西

  • 使用 with open() 而不是 open() 将在您完成后关闭文件
  • 在线上调用 .strip()(如评论中所述)将比替换它们更容易地从行中删除尾随换行符
  • open() returns 一个类似文件的文件,它已经可以按行迭代(所以你可以简单地写一个像 for x in y 这样的结构)并且会省略一个 trailing final line
  • 你可以做一个类似"a" if something else "b"的结构来简化一些流程