Skip to main content
 首页 » 编程设计

Python 按特殊字符 (+/-) 排序

2025年05月04日109bhlsheji

我目前正在尝试编写一个小的 Python 脚本,它解析 SVN .diff 文件并将结果写入 .csv,它可以在 Microsoft 中轻松打开Excel 或类似程序。但是,我停留在解析部分,更准确地说是行排序。我要解析的文件如下所示。

-   <name key="first.key">Old string 1</name> 
-   <name key="second.key">Old string 2</name> 
+   <name key="first.key">New string 1</name> 
+   <name key="second.key">New string 2</name> 
+   <name key="third.key">Another new string</name> 
... 

为了轻松解析文件并将彼此相邻的键写入表中,我需要按键对对它进行排序,因此它看起来像下面这样。这样,我就可以轻松地浏览文件。

-   <name key="first.key">Old string 1</name> 
+   <name key="first.key">New string 1</name> 
-   <name key="second.key">Old string 2</name> 
+   <name key="second.key">New string 2</name>     
+   <name key="third.key">Another new string</name> 
... 

是否有内置的方法来进行这种排序或简单的替代方法?

请您参考如下方法:

是的,有!您可以将 sorted(或 sort)函数与您自己的排序函数结合使用:

import re 
 
pattern = re.compile(r'\<name key="(.*)">(.*)<\/name>') 
def sorter(pair): 
    return pattern.match(pair).groups() 
 
print(sorted(list_of_lines, key=sorter))