在文本文件中搜索特定单词

时间:2021-05-28 16:01:38

标签: python python-3.x

我目前正在尝试在文本文件中搜索特定单词。 我已经编写了代码,但脚本似乎无法正常工作。

我的代码:

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。

希望有人能帮我解决这个小问题:)

提前感谢大家的帮助和建议:)

4 个答案:

答案 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()]