我想在txt文件中搜索变量“elementid”
f = open("wawi.txt", "r")
r = f.read()
f.close()
for line in r:
if elementid in line:
print("elementid exists")
break
元素可能是123456
txt包含三行:
1235
56875
123456
但代码不打印“elementid存在”,为什么? 我使用python 3.4
答案 0 :(得分:0)
当您read
文件时,您将整个内容读成字符串。
当你迭代它时,你一次得到一个角色。
尝试打印行:
for line in r:
print line
你会得到
1
2
3
5
5
6
8
7
5
1
2
3
4
5
6
你需要说:
for line in r.split('\n'):
...
答案 1 :(得分:0)
重新安排您的代码
f = open("wawi.txt", "r")
for line in f:
if elementid in line: #put str(elementid) if your input is of type `int`
print("elementid exists")
break
答案 2 :(得分:0)
将整数转换为字符串THEN迭代文件中的行,检查当前行是否与elementid
匹配。
elementid = 123456 # given
searchTerm = str(elementid)
with open('wawi.txt', 'r') as f:
for index, line in enumerate(f, start=1):
if searchTerm in line:
print('elementid exists on line #{}'.format(index))
elementid exists on line #3
更强大的解决方案是从每行中提取所有数字并找到所述数字中的数字。如果数字存在于当前行中的任何位置,则会声明匹配。
numbers = re.findall(r'\d+', line) # extract all numbers
numbers = [int(x) for x in numbers] # map the numbers to int
found = elementid in numbers # check if exists
import re
elementid = 123456 # given
with open('wawi.txt', 'r') as f:
for index, line in enumerate(f, start=1):
if elementid in [int(x) for x in re.findall(r'\d+', line)]:
print('elementid exists on line #{}'.format(index))
答案 3 :(得分:0)
f = open("wawi.txt", "r")
for lines in f:
if "elementid" in lines:
print "Elementid found!"
else:
print "No results!"