この記事では主に Python で 2 つのファイルを結合する機能を詳しく紹介します。興味のある方は参考にしてください。この記事ではファイルの結合方法を分析し、指摘します。ファイルの結合プロセス中に注意が必要な問題。
以下はマージする必要があるファイルの例です:
分析のアイデア:
2 つのファイルをマージするには、まずファイルをメモリに読み込み、リストになります。次に、リストを分割し、カテゴリ (名前、電話番号、電子メール アドレス) に従ってデータを個別に保存します。リスト 1 をたどってリスト 2 と順番に比較し、2 つのリストに重複する人物がある場合は、.join([ ]) を直接使用して名前、電話番号、電子メールを 1 つの行に結合し、別のリスト変数に保存します。 2 つが重複しない場合は、リスト 1 にのみ存在することを意味するため、この人の電子メール情報は str ('—–') に置き換えられます。
この走査の後、リスト 1 のすべての人物と、リスト 2 とリスト 1 の重複した人物が新しいリスト変数に再統合されました。次に、リスト 2 にある一意の人物を新しいリスト変数に追加する必要があります。方法はリスト2をたどってリスト1と重ならない人を取り出して保存するというものです。
最後に、新しいリスト変数のデータを新しいファイルに書き込み、すべてのファイルを閉じます。
フローチャートは次のとおりです:
コードは次のとおりです:
""" Created on Fri Aug 4 12:59:36 2017 @author: 13323 """ # This program can combine two or more files into one file. def main(): #firstly open the files data1 = open("test_3.txt","rb") data2 = open("test_4.txt","rb") # read the data in file into list data1.readline() #only read one line, skip the first line data2.readline() #only read one line, skip the first line file1 = data1.readlines() #read all variable into list file1 file2 = data2.readlines() #read all variable into list file2 #print(file1) #define particular list to store variable file1_name = [] file1_tel = [] file2_name = [] file2_email = [] #file3 = [] #split file1 into two part for line in file1: element = line.split() #line.split(); devide by ' ' file1_name.append(str(element[0].decode('gbk'))) file1_tel.append(str(element[1].decode('gbk'))) #split file2 into two part for line in file2: element = line.split() file2_name.append(str(element[0].decode('gbk'))) file2_email.append(str(element[1].decode('gbk'))) # pick up the name in the file1 same as the name in the file2 and combine file3 = [] for i in range(len(file1_name)): s = '' if file1_name[i] in file2_name: j = file2_name.index(file1_name[i]) s = '\t'.join([file1_name[i],file1_tel[i],file2_email[j]]) s += '\n' else: s = '\t'.join([file1_name[i],file1_tel[i],str("----")]) s += '\n' file3.append(s) #pick up the name in the file1 doesn't same as the name in the file2 for i in range(len(file2_name)): s = '' if file2_name[i] not in file1_name: s = '\t'.join([file2_name[i],str('----'),file2_email[i]]) s += '\n' file3.append(s) #write the data into file3 data3 = open("test_5.txt","w") data3.writelines(file3) #close the file data1.close() data2.close() data3.close() main()
エンコードとデコード
リストのマージと解体
関連する推奨事項:
以上がPythonは2つのファイルをマージする機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。