如何解决readline 循环在空白空间中注释 Python
图片显示其他一切正常,但代码中有一个空格,这使得程序打印“无效”。我不知道空的空间从哪里来,有什么建议吗?
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()
返回一个类似文件的文件,它已经可以逐行迭代(所以你可以简单地写一个像for x in y
这样的结构)并且会省略一个 trailing final line - 你可以创建一个像
"a" if something else "b"
这样的结构来简化一些流程
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。