在Python中搜索加载的文件

问题描述 投票:0回答:1

我正在尝试对文本文件中包含的信息进行分类,但我遇到了一个奇怪的问题:我加载文件,将信息放入变量(这是一个字符串),当我尝试使用str.find()进行搜索时关键词,我总是得-1。如果我打印出变量的内容,显式地将它放入变量并以相同的方式使用str.find(),我得到了正确的结果。两个变量都具有相同的内容,它们都是字符串,但其中一个是不可搜索的。我做错了什么?这让我疯狂。

示例代码:

f=open('D:/test.txt','r')
print(f.read()) 
var1=f.read()
print(type(var1)) #<class 'str'>
print(str.find(var1,"name")) #gives -1
var2='{"_id": "12345", "name": "Bob", "Age": 30}' #copied manually from the first print

print(type(var2)) #<class 'str'> #gives 18

var1.find(“name”)也不起作用。我正在使用Python 3.6和PyCharm。

提前致谢。

python string find
1个回答
3
投票

你面临的问题是由于你的第一个print(f.read())线。调用f.read()会从文件中提取所有数据,因此文件读取位置将在结尾处。以下read不会返回任何内容,因为您已经到达文件末尾。

删除该行应该可以解决您的问题。另一个解决方案是在f.seek(0)之前添加var1=f.read(),它将文件读取位置重置到文件的开头。

© www.soinside.com 2019 - 2024. All rights reserved.