[英]How to search for word in text file and print part of line with Python?
I'm writing a Python script.我正在编写一个 Python 脚本。 I need to search a text file for a word and then print part of that line.
我需要在文本文件中搜索一个单词,然后打印该行的一部分。 My problem is that the word will not be an exact match in the text file.
我的问题是这个词在文本文件中不会完全匹配。
For example, in the below text file example, I'm searching for the word "color="
.例如,在下面的文本文件示例中,我正在搜索单词
"color="
。
Text File ex:文本文件例如:
ip=10.1.1.1 color=red house=big
ip=10.1.1.2 color=green house=small
ip=10.1.1.3 animal = dog house=beach
ip=10.1.1.4 color=yellow house=motorhome
If it finds it, it should print to a new text file "color=color"
, not the whole line.如果找到它,它应该打印到一个新的文本文件
"color=color"
,而不是整行。
Result Text File ex:结果文本文件例如:
color=red
color=green
color=yellow
My code:我的代码:
for line_1 in open(file_1):
with open(line_1+'.txt', 'a') as my_file:
for line_2 in open(file_2):
line_2_split = line_2.split(' ')
if "word" in line_2:
if "word 2" in line_2:
for part in line_2:
line_part = line_2.split(): #AttributeError: 'list' object has no attribute 'split'
if "color=" in line_part():
print(line_part)
I believe I need to use regular expressions or something like line.find("color=")
, but I'm not sure what or how.我相信我需要使用正则表达式或类似
line.find("color=")
,但我不确定是什么或如何使用。
Question : How do I search a text file for a word (not an exact match) and the print only a specific part of each line?问题:如何在文本文件中搜索一个词(不是完全匹配)并只打印每行的特定部分?
Here's one way - split each line by spaces, then search each part for "color=":这是一种方法 - 用空格分割每一行,然后在每个部分中搜索“color=”:
with open("textfile.txt") as openfile:
for line in openfile:
for part in line.split():
if "color=" in part:
print part
Well, it may not be much, but you could always use regex:好吧,它可能不多,但你总是可以使用正则表达式:
m = re.search(r'(color\=.+?(?= )|color\=.+?$)', line)
if m:
text = m.group() # Matched text here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.