我目前正在尝试在文本文件中搜索特定单词。 我已经编写了代码,但脚本似乎无法正常工作。
我的代码:
main_file = open('myfile.txt','w')
x = 'Hello'
x_main = main_file.write(x)
with open('myfile.txt') as f:
datafile = f.readlines()
for line in datafile:
if 'Hello' in line: #I also tried Hello without the quotes
print("ok")
print(x)
我只得到 Hello 作为输出,而不是 ok + Hello。
希望有人能帮我解决这个小问题:)
提前感谢大家的帮助和建议:)
答案 0 :(得分:2)
您的主要问题是在写入文件后没有关闭文件。就像您打开文件 with open(file) as file
所做的那样,您也可以这样做以读取文件。这样您就可以避免编写 file.close()
的麻烦。
除此之外,您的代码看起来还不错。
with open('test.txt','w') as f:
x = 'Hello'
f.write(x)
with open('test.txt') as f:
datafile = f.readlines()
for line in datafile:
if 'Hello' in line: #I also tried Hello without the quotes
print("ok")
print(x)
答案 1 :(得分:2)
试试这个
main_file = open('myfile.txt','w')
x = 'Hello'
x_main = main_file.write(x)
main_file.close()
with open('myfile.txt', 'r') as f:
datafile = f.readlines()
for line in datafile:
if 'Hello' in line: #I also tried Hello without the quotes
print("ok")
print(x)
答案 2 :(得分:1)
写入文件时,您从未关闭文件 (file.close()
)。我建议使用 open()
上下文管理器,这样您就不必担心编写 file.close()
。
string = "Hello"
with open("myfile.txt", "w") as file:
file.write(string)
with open("myfile.txt") as file:
lines = file.readlines()
for line in lines:
if "Hello" in line:
print("OK")
print(string)
答案 3 :(得分:-1)
因为每个人都在使用 with open()
,所以这里有一个使用列表理解的解决方案。
(lambda x : [x.write("Hello"), x.close()])(open("myfile.txt", "w"))
[print("OK" )if "Hello" in line else 0 for line in open("myfile.txt").readlines()]