python实现两个文件合并功能


本文摘自php中文网,作者不言,侵删。

这篇文章主要为大家详细介绍了python实现两个文件合并功能,一个简单的文件合并程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文将会分析一个文件合并的程序,并指出在合并文件过程中需要注意的问题。

下面是需要合并的文件示例:


分析思路:

要将两个文件合并,首先要将文件读到内存中,成为列表。再将列表分割,按照类别将数据分开存储,即姓名、电话、邮箱。通过遍历列表1,依次与列表2比较,如果二者有重合的人,那么直接利用 .join([ ])姓名电话邮箱合并到一行,保存到另外一个列表变量里面。二者不重合的人,说明只有列表1中才有,故将此人的邮箱信息用str(‘—–')代替。

经过这次遍历之后,列表1中所有的人和列表2中与列表1中重复的人,都重新整合到了新的列表变量里面。接下来还需要把列表2中特有的人,添加到新的列表变量中。方法是遍历列表2,把与列表1不重合的人取出来保存。

最后要将新的列表变量中的数据写入到新的文件中,并关闭所有文件。

流程图如下:

代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

"""

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实现切换功能

Python实现管理站点的方法


以上就是python实现两个文件合并功能的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

总结2020年最强Python

深入了解Python中的协程函数

Python怎样求得最大公约数

Python可以开发软件吗

Python中面向对象该如何编程

Pythonista3都能做什么

Python的模块数据是哪里来的

Python的web服务器相关知识点

学习Python将中文数字转化成阿拉伯数字

Python实现简单淘宝秒杀功能

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...