基本上我想打印一个否定陈述,如果一个单词不在文件中。
import fileinput
import sys
def find(text, file):
fisier = open(file, "r", encoding='UTF-8')
upper = text[0].upper()
lower = text[0].lower()
uppertext = upper + text[1:]
lowertext = lower + text[1:]
#print(lowertext)
#print(uppertext)
for line in fisier.readlines():
if (uppertext in line.strip()):
print(line)
if (lowertext in line.strip()):
print(line)
if (text not in fisier):
print(uppertext,"wasn't found in" , file)
def main():
find("obuz", "catastrofa.txt")
main()
这些都不奏效。尽管文件中有单词,但它仍打印出“文件未在文件中找到”。
le:更多代码。 fileinput用于其他东西
答案 0 :(得分:0)
in file
file
是来自例如{1}的文件描述符。 open()
会为您提供文件中所有行的列表。除非text
用于匹配整行,包括末尾的换行符和任何前导/尾随空格,否则这不是您想要的。如果text
是一个简单的字符串,而不是正则表达式,那么这可能就是你想要的:
found=False
for line in file:
if text in line:
found=True
if not found:
print("{} wasn't found in {}".format(text, filename))
答案 1 :(得分:0)
检查字符串中存在的惯用方法是使用needle in haystack
语法:
def find_in_file(needle, filepath):
with open(filepath, 'r') as fh:
# Case-insensitive search
if needle.lower() not in fh.read().lower():
print("%s wasn't found in %s" % (needle.upper(), filepath))
关于进行不区分大小写的搜索的注意事项:这是ASCII字符串的情况。 See this answer and comments for discussion on handling Unicode comparison with Python