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"
的结构来简化一些流程
图片显示其他一切正常,而不是代码中有一个空的 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"
的结构来简化一些流程