我需要得到這個結果:
示例輸入:(兩個檔案)
亞當 1234
約翰 4321
安德森 4321
史密斯 1234
預期輸出:
亞當·斯密 1234
約翰·安德森 4321
我的代碼現在是這樣作業的,它結合了兩個 .txt 檔案……但我不知道如何將它們結合到同一個 ID 上?
new = []
with open('full.txt', 'w') as new_file:
with open('1.txt') as fp_first_name:
with open('2.txt') as fp_last_name:
for line1 in fp_first_name:
for line2 in fp_last_name:
new_file.write(line1[:len(line1[-5:])] line2)
我試過像
if line2[-5:] == line1[-5:]:
new_file.write(line1[:len(line1[-5:])] line2)
但這當然只需要每個“line2”和“line1”的第一行,它不會遍歷它需要做的整個 .txt 檔案。
uj5u.com熱心網友回復:
您可以拆分行并為每行指定名稱和編號,然后進行比較和組合以防匹配:
name1, number1 = line1.split(" ")
name2, number2 = line2.split(" ")
if number2 == number1:
new_file.write(f"{name1} {name2} {number2}")
新代碼:
new = []
with open('full.txt', 'w') as new_file:
with open('file1.txt') as fp_first_name:
for line1 in fp_first_name:
with open('file2.txt') as fp_last_name:
for line2 in fp_last_name:
# print(f"L1: {line1}L2: {line2}")
name1, number1 = line1.split(" ")
name2, number2 = line2.split(" ")
# print(f"what {name1} {number1} {name2} {number2}")
if number2.strip() == number1.strip():
new_file.write(f"{name1} {name2} {number2}")
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/514443.html
