【发布时间】:2019-06-06 17:36:12
【问题描述】:
我有 2 个包含数据的字符串:
str 1 = '''ls /var/crash
bbb-metro-3542-1559557457.core.gz cesd-pslm-4456-1559557475.core.gz
bbb-metro-3542-1559557457.txt cesd-pslm-4456-1559557475.txt
bbb-metro.20190603.102417+0000.3542 cesd-pslm.20190603.095937+0000.3717
cesd-pslm-3717-1559555977.core.gz cesd-pslm.20190603.102435+0000.4456
cesd-pslm-3717-1559555977.txt old
bash-4.1#
'''
str2= '''ls /var/crash
bbb-metro-3542-1559557457.core.gz cesd-pslm-4456-1559557475.core.gz
bbb-metro-3542-1559557457.txt cesd-pslm-4456-1559557475.txt
bbb-metro.20190603.102417+0000.3542 cesd-pslm.20190603.095937+0000.3717
cesd-pslm-3717-1559555977.core.gz cesd-pslm.20190603.102435+0000.4456
cesd-pslm-3717-1559555977.txt old
'''
现在我想比较这两个字符串并打印出差异。
Str1 和 Str2 也可以在运行期间更改,因为这些值是从函数调用期间调用的“ls -l”命令保存的。
如何比较这两个字符串?差异需要保存在另一个字符串中,因为我会将其传递给函数以获取值。
我正在尝试将变量类型更改为列表,但它不起作用。
def ls_output(card)
pxr_crash = self.send_card_cmd(
card, "ls /var/crash")
pxr_old = self.send_card_cmd(
card, "ls /var/crash/old")
return pxr_crash.resp,pxr_old.resp
返回值分别为str1和str2。
I am expecting is str1 = '''ls -l /stat
-r--r--r-- 1 root root 0 Jun 6 08:56 version
-r-------- 1 root root 0 Jun 6 08:56 vmallocinfo
'''
and str2 = '''ls -l /stat
-r--r--r-- 1 root root 0 Jun 6 08:56 version
-r-------- 1 root root 0 Jun 6 08:56 vmallocinfo
-r-------- 1 root root 0 Jun 6 08:56 zone
'''
所以我应该得到
-r-------- 1 root root 0 Jun 6 08:56 zone
【问题讨论】:
-
在行列表中拆分字符串,然后从
str1中的每一行签入str2中的行列表 -
您也可以将行列表转换为
set()并执行set1 - set2以获得差异 -
你在认真地使用python中的
ls吗? docs.python.org/3/library/stat.html -
@cdarke +1,这个或新的
pathlib。
标签: python