如何使File2.txt与File1.txt内容排列一致?Python代码问题排查
按File1的顺序重新排列File2的内容
先明确文件内容(根据你提供的图片转写):
- File1.txt(按目标顺序排列的汽车品牌):
Honda Toyota Ford
- File2.txt(包含品牌的车型数据):
Ford SUV Toyota Sedan Honda Hatchback Ford Truck Toyota Coupe Honda SUV
- 预期输出:
Honda Hatchback Honda SUV Toyota Sedan Toyota Coupe Ford SUV Ford Truck
你的代码失效的原因
- 换行符匹配问题:
readlines()会保留每行末尾的换行符\n,比如File1中的"Honda"被读成"Honda\n",而File2中的行是"Honda Hatchback"(不含换行符),导致file1_lines[i] in line2的判断永远为假,无法触发打印。 - 逻辑顺序错误:你的代码先遍历File2的所有行,再检查是否匹配File1的品牌,输出顺序会和File2原始顺序一致,无法实现按File1的品牌分组排序。
修正后的代码
# 读取文件并处理换行符,strip()去除每行的空白字符(包括换行、空格) with open("file1.txt", 'r') as file1: brands = [line.strip() for line in file1.readlines()] with open("file2.txt", 'r') as file2: models = [line.strip() for line in file2.readlines()] # 按File1的品牌顺序,依次输出对应车型 for brand in brands: for model in models: if brand in model: print(model)
代码说明
- 使用
with语句操作文件:这是Python推荐的文件处理方式,会自动关闭文件,避免资源泄漏。 strip()处理每行:消除换行符和多余空格,确保品牌字符串能正确匹配车型行中的内容。- 双层循环逻辑:外层遍历File1的品牌顺序,内层查找File2中对应品牌的车型,实现按品牌分组排序的效果。
内容的提问来源于stack exchange,提问作者lalisa
相关产品推荐
相关产品推荐

