def compare_files_with_rtspurl(a_file, b_file, c_file):
|
"""
|
比较A文件和B文件,将A文件中id在B文件中存在的行修改为B文件中的rtspurl并写入C文件。
|
|
:param a_file: A文件路径
|
:param b_file: B文件路径
|
:param c_file: C文件路径
|
"""
|
# 读取B文件,提取id与rtspurl的映射
|
b_data = {}
|
with open(b_file, 'r', encoding='utf-8') as b:
|
for line in b:
|
parts = line.strip().split()
|
if len(parts) >= 6:
|
b_data[parts[4]] = parts[0] # 以id为键,rtspurl为值
|
|
# 筛选A文件中id在B文件中的行,并替换为B文件的rtspurl
|
with open(a_file, 'r', encoding='utf-8') as a, open(c_file, 'w', encoding='utf-8') as c:
|
for line in a:
|
parts = line.strip().split()
|
if len(parts) >= 6 and parts[4] in b_data:
|
parts[0] = b_data[parts[4]] # 替换rtspurl
|
c.write(" ".join(parts) + "\n")
|
|
if __name__ == "__main__":
|
# 定义文件路径
|
a_file_path = "cameralist.txt"
|
b_file_path = "temp.txt"
|
c_file_path = "result.txt"
|
|
# 调用函数进行比较
|
compare_files_with_rtspurl(a_file_path, b_file_path, c_file_path)
|