我有一个python中的字符串列表,我想找出哪些字符串不包含任何错误的子字符串,这些子字符串是我从文件中读取的。下面是我在python 2中的代码:
with open("badchars.txt", "w") as f:
f.write("a b c")
mywords = ["good", "bad"]
print [
word for word in mywords
if all(
badchar not in word
for badchar in open("badchars.txt").read().split()
)
]
with open("badchars.txt") as f:
print [
word for word in mywords
if all(
badchar not in word
for badchar in f.read().split()
)
]
我希望两行都打印[“good”],但是第一行的行为与预期一样,第二行则显示[“good”,“bad”]。我不明白为什么
同样的事情也发生在python3中,如果我将print
更改为print()
为什么会这样
f.read()
从文件中的当前位置开始。因此,当您为同一个文件对象调用它两次时,第二次就没有什么可读的了相关问题 更多 >
编程相关推荐