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)