python 练习题- 文件取值排序
题目:
1 三个文件:txt1.txt、txt2.txt、txt3.txt 2 1.取出txt1.txt中的第二列数据, 3 2.取出txt2.txt中的第三列数据 4 3.排序,从大到小(自己实现) 5 4.写入 txt3.txt 中滴 6 按照从大到小的顺序,写入3.txt中的第一列 7 8 例: 9 txt1.txt: 10 aaa,234,1 11 2,555,1111 12 r44,9,2 13 jjj,123,44 14 15 txt2.txt: 16 7?i?89 17 rr?oo?33 18 19 20 结果: 21 txt3.txt: 22 555 23 234 24 123 25 89 26 33 27 9
代码:
1 # @Author :whyCai 2 # @Time :2021/3/4 20:55 3 4 5 ''' 6 三个文件:txt1.txt、txt2.txt、txt3.txt 7 1.取出txt1.txt中的第二列数据, 8 2.取出txt2.txt中的第三列数据 9 3.排序,从大到小(自己实现) 10 4.写入 txt3.txt 中滴 11 按照从大到小的顺序,写入3.txt中的第一列 12 13 例: 14 txt1.txt: 15 aaa,234,1 16 2,555,1111 17 r44,9,2 18 jjj,123,44 19 20 txt2.txt: 21 7?i?89 22 rr?oo?33 23 24 25 结果: 26 txt3.txt: 27 555 28 234 29 123 30 89 31 33 32 9 33 ''' 34 35 from numpy import * 36 37 #1取值 38 def getFileStr(fileName,splitStr,num): 39 ''' 40 获取指定的字符 41 :param fileName: 文件名 42 :param splitStr: 分割的字符 43 :param num: 获取第几个数字 44 :return: 45 ''' 46 fr = open(fileName) 47 returnRes = [] 48 for line in fr.readlines(): 49 line = line.strip() 50 lineSplit = line.split(splitStr) 51 returnRes.append(lineSplit[num-1]) 52 return returnRes 53 54 dataTxt1 = getFileStr("txt1.txt",',',2) 55 dataTxt2 = getFileStr("txt2.txt",'?',3) 56 dataTxt = dataTxt1 + dataTxt2 57 58 #2排序 59 def quickSort(list): 60 ''' 61 快速排序 62 :param list: 63 :return: 64 ''' 65 if len(list) <= 1: 66 return list 67 else: 68 mid = int(list[0]) 69 litt = [x for x in list[1:] if int(x) < mid] 70 big = [x for x in list[1:] if int(x) >= mid] 71 return quickSort(big)+ [mid] + quickSort(litt) 72 73 dataTxtEnd = quickSort(dataTxt) 74 75 #3文件写入 76 fileName = 'txt3.txt' 77 with open(fileName, 'w') as fr: 78 for i in dataTxtEnd: 79 fr.write(str(i)+'\n')
参考博客: