计算器。
我一直试图获取以下代码来创建.txt文件,在其上写一些字符串然后如果所述字符串在文件中则打印一些消息。这仅仅是对一个更复杂的项目的研究,但即使考虑到它的简单性,它仍然无法正常工作。
代码:
import io
file = open("C:\\Users\\...\\txt.txt", "w+") #"..." is the rest of the file destination
file.write('wololo')
if "wololo" in file.read():
print ("ok")
此功能总是跳过if,好像没有" wololo"在文件内部,即使我已经一直检查它并且它在那里正确。
我不确定可能出现什么问题,而且我花了很多时间在各地寻找解决方案,但都无济于事。这个简单的代码可能有什么问题?
哦,如果我要在更大的.txt文件中搜索字符串,使用file.read()仍然是明智的吗?
谢谢!
答案 0 :(得分:3)
当您写入文件时,光标将移动到文件的末尾。如果您想要更多地读取数据,您必须将光标移动到文件的开头,例如:
file = open("txt.txt", "w+")
file.write('wololo')
file.seek(0)
if "wololo" in file.read():
print ("ok")
file.close() # Remember to close the file
如果文件很大,您应该考虑逐行遍历文件。这样可以避免将整个文件存储在内存中。另外,请考虑使用上下文管理器(with
关键字),这样您就不必自己明确关闭文件。
with open('bigdata.txt', 'rb') as ifile: # Use rb mode in Windows for reading
for line in ifile:
if 'wololo' in line:
print('OK')
else:
print('String not in file')