繁体   English   中英

Python 打印文件行搜索的第一个实例

[英]Python print first instance of a file line search

我正在解析 a.desktop 文件是 python。 我写了以下内容来查找要启动的应用程序的名称。

 ​                ​o2​ ​=​ ​self​.​name 
 ​                ​#create a temp file so that i can... 
 ​                ​tmp​ ​=​ ​tempfile​.​NamedTemporaryFile​() 
 ​                ​with​ ​open​(​tmp​.​name​, ​'w'​) ​as​ ​f​: 
 ​                        ​f​.​write​(​o2​) 
 ​                ​#use readline for a grep like function 
 ​                ​with​ ​open​(​tmp​.​name​) ​as​ ​f​: 
 ​                        ​for​ ​line​ ​in​ ​f​.​readlines​(): 
 ​                                ​if​ ​'Name='​ ​in​ ​line​:

注意:self.name 是一个字符串版本的。 桌面文件..问题是每次我进行搜索时,它都会在搜索中找到最后一个项目,我将以 alacritty 为例。

 
 ​Name​=Alacritty 
 ​GenericName​=Terminal 
 ​Comment​=A fast, cross-platform, OpenGL terminal emulator 
 ​StartupWMClass​=Alacritty 
 ​Actions​=New; 
  
 ​[Desktop Action New] 
 ​Name​=New Terminal 
 ​Exec​=alacritty

我希望它打印出你看到的第一个 Name= 但它会打印出 [Desktop Action New] 下的最后一个 Name= 我该如何解决这个问题?

所以你想打印第一个'Name='而不是第二个? 如果这是您想要做的,只需在打印第一个'Name='后中断循环

 ​                ​o2​ ​=​ ​self​.​name 
 ​                ​#create a temp file so that i can... 
 ​                ​tmp​ ​=​ ​tempfile​.​NamedTemporaryFile​() 
 ​                ​with​ ​open​(​tmp​.​name​, ​'w'​) ​as​ ​f​: 
 ​                        ​f​.​write​(​o2​) 
 ​                ​#use readline for a grep like function 
                 last_line = None
 ​                ​with​ ​open​(​tmp​.​name​) ​as​ ​f​: 
 ​                        ​for​ ​line​ ​in​ ​f​.​readlines​(): 
 ​                                ​if​ ​'Name='​ ​in​ ​line​:
                                         print(line)
                                         #maybe do some more staff, then :
                                         break

这将阻止打印第二个'Name='

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM