代码拉取完成,页面将自动刷新
from difflib import SequenceMatcher
import math
file = "failed_commands"
pkg_list_file="/root/autospec/openEuler-22.03-LTS-package-list.txt"
def dev2devel():
#change -dev into devel
with open(file,'r') as f:
content = f.read().replace("-dev","-devel")
with open(file,'w') as f:
f.write(content)
def match_pkg_of_openeuler():
with open(pkg_list_file,'r') as plf:
pkg_list = plf.readlines()
changed_lines = []
with open(file,'r') as f:
for line in f.readlines():
if line.startswith('#'):
changed_lines.append(line)
continue
pat,pkg = line.split(',')
pkgs = pkg.strip().split()
matched_pkgs = []
for pkg in pkgs:
pkgs0 = [pkg]
if pkg.startswith("pkgconfig("):
pkg0 = pkg[10:-1]
pkgs0.append(pkg0)
if not pkg0.startswith("lib"):
pkgs0.append("lib"+pkg0)
if not pkg0.endswith("-devel"):
pkgs0.append(pkg0+"-devel")
elif pkg.startswith("pypi("):
pkg0 = pkg[5:-1]
pkg0 = "python3-" + pkg0
pkgs0.append(pkg0)
elif pkg.startswith("pypi-"):
pkg0 = pkg[5:]
pkg0 = "python3-" + pkg0
pkgs0.append(pkg0)
elif pkg.startswith("qt"):
pkg0 = "qt5-" + pkg
pkgs0.append(pkg0)
top_ratio = 0.0
for pkg00 in pkgs0:
for pkg1 in pkg_list:
pkg1 = pkg1.strip('\n')
s = SequenceMatcher(None,pkg00.lower(),pkg1.lower())
ratio = s.ratio()
if math.isclose(ratio,1.0):
matched_pkgs.append(pkg1)
if ratio > top_ratio:
top_ratio = ratio
matched_pkg = pkg1
print("pkgs=" + str(pkgs) + ",pkg00=" + pkg00 + ",matched_pkg=" + matched_pkg + ",top_ratio="+ "{top_ratio:5.2}".format(top_ratio=top_ratio) + ", matched_pkgs=" + str(matched_pkgs))
if len(matched_pkgs) == 0:
changed_lines.append(line)
else:
line1 = pat + ','
for matched_pkg in matched_pkgs:
line1 += ' ' + matched_pkg
line1 += '\n'
changed_lines.append(line1)
with open(file,'w') as f:
for changed_line in changed_lines:
f.write(changed_line)
def main():
dev2devel()
match_pkg_of_openeuler()
main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。