Python 小程序,对文件操作及其它

以下是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等。比方说,从文件里读取一行数据。分别存放于列表中,再对列表进行操作。如去掉里面的反复项。排序等操作。

常见对文件里行进行操作:

#这里列出两个经常使用的方法

  • 方法01: 一次性读取全部行
>>> f = file(‘1.txt‘)
>>> while 1:
	lines = f.readlines()
	if not lines:
		break
	for line in lines:
		print line
  • 方法02: 一行行读取
>>> f = file(‘1.txt‘)
>>> while f:
	line = f.readline()
	if len(line) == 0:
		break
	else:
		print line,

常见对列表去反复项操作:

  • 方法01: 函数处理

#列表中值超过1者表示有反复则删除,比方:

#列表顺序==>改变

>>> list1.count(3)  #元素值为3的个数:2个
2
>>> def removeDup(lst):
	for x in lst:
		if lst.count(x)>1:
			del lst[lst.index(x)]

>>> lst = [1,3,2,4,3]
>>> removeDup(lst)
>>> lst
[1, 2, 4, 3]
  • 方法02: 常规方法

#建新空列表,遍历原始列表。假设不在新空列表中,则加入

#列表顺序==>不变

>>> list1 = [1,3,2,4,3]
>>> list2 = []
>>> for i in list1:
	if i not in list2:
		list2.append(i)
>>> list2
[1, 3, 2, 4]
  • 方法03: 字典方法

#利用字典key值的唯一性,及里面的fromkeys()及keys()方法

>>> list1 = [1,3,2,4,3]
>>> list2 = {}.fromkeys(list1).keys()
>>> list2
[1, 2, 3, 4]
  • 方法04: 集合方法

#集合能去除列表中反复项

#列表顺序==>改变

>>> list1 = [1,3,2,4,3]
>>> set(list1)
set([1, 2, 3, 4])
  • 方法05: 迭代工具

#用itertools的迭代工具的groupby()方法

#列表顺序==>改变

>>> import itertools
>>> lst = [1, 3, 2, 4, 3]
>>> lst.sort()
>>> it = itertools.groupby(lst)
>>> for k,g in it:
	print k
1
2
3
4 
  • 方法06: 索引排序

#先用集合,再用排序,注意key=list1.index。控制顺序

#列表顺序==>改变

>>> list1 = [1,3,2,4,3]
>>> list2 = list(set(list1))
>>> list2.sort(key=list1.index)
>>> list2
[1, 3, 2, 4]

常见对字符串反转操作:

  • 方法01: 列表切片
>>> s = ‘Hello‘
>>> l = list(s)
>>> l[::-1]
[‘o‘, ‘l‘, ‘l‘, ‘e‘, ‘H‘]
  • 方法02: 常规做法
>>> def rev(s):
	str0 = ‘‘
	l    = len(s)-1
	while l >=0:
		str0 += s[l]
		l  -= 1
	return str0

>>> s = ‘A B C D‘
>>> rev(s)
‘D C B A‘
  • 方法03: 列表反转
>>> s = ‘HELLO‘
>>> l = list(s)
>>> l.reverse()  #列表reverse()方法
>>> ‘‘.join(l)   #用空字符串join列表
‘OLLEH‘
  • 方法04: reduce函数
>>> def rev(s):
	return reduce(lambda x,y: y+x, s) #匿名函数和reduce函数结合使用
>>> s = ‘AB CD‘
>>> rev(s)
‘DC BA‘

小程序一: 提取两个文件里同样部分

f1 = open("1.txt","r+")
f2 = open("2.txt","r+")
f3 = open("3.txt","w+")

all1 = f1.readlines()    #先拿文件1中全部行取出
all2 = f2.readlines()    #再拿文件2中全部行取出
f1.close()
f2.close()

for l1 in all1:
    for l2 in all2:
        if l1.strip()==l2.strip(): #比較行中内容是否一样
            f3.write(l2)
    else:
        continue
else:
    pass

print "#"*40
f3.close()

小程序二: 反向读取文件

假如要读取的test.txt文件内容例如以下:

Python

Perl

Java

Shell

file1 = file(‘test.txt‘,‘r‘)   #打开文件句柄
list1 = []                     #用一个空列表用于存放每行的内容
while True:
    line = file1.readline()    #按行读取
    list1.append(line.strip()) #去除字符串空格
    if len(line) == 0:         #假设没内容,则中断
        break
for l in list1[::-1]:          #反向遍历。然后依次读取出来
    print l

file1.close()

输出结果:

Shell

Java

Perl

Python

小程序三: 对两个文本文件进行操作

要求:

1. 移除每一个文件里的反复项

2. 找出两个文件里的同样项

3. 操作两个文件里的合集

4. 操作两个文件里的交集

#原始文件:文件1,文件2
f1 = file(‘1.txt‘,‘r‘)
f2 = file(‘2.txt‘,‘r‘)

#生成文件:文件3,文件4,文件5,文件6
f3 = file(‘same.txt‘,‘w+‘)
f4 = file(‘union.txt‘,‘w+‘)
f5 = file(‘1_diff.txt‘,‘w+‘)
f6 = file(‘2_diff.txt‘,‘w+‘)

#用空列表来存储原始文件的内容
list1  = []  #用一个空列表用于存放每行的内容
list2  = []  #用于存放文件2中的内容
1_diff = []  #用于存放文件1中的去重部分
2_diff = []  #用于存放文件2中的去重部分

#遍历两个文件
while True:
    line1 = f1.readline()
    line2 = f2.readline()
    if len(line1) ==0 or len(line2)==0:
        break
    else:
        list1.append(line1)
        list2.append(line2)

list1_uniq = set(list1) #排除第一个文件里反复的内容
list2_uniq = set(list2) #注意应用集合排除反复的项目
same       = list1_uniq & list2_uniq #取交集
union      = list1_uniq | list2_uniq #取合集

#取两个集合的交集。写入文件3中
for i in same:
    f3.write(i)  

#取两个集合的并集,写入文件4中
for i in union:
    f4.write(i)  

#取列表1中部分,与共同部分取交集
for i in list1_uniq:
    if not i in same:
        f5.write(i)

#取列表2中部分,与共同部分取交集
for i in list2_uniq:
    if not i in same:
        f6.write(i)

#关闭全部打开的文件句柄
f1.close()
f2.close()
f3.close()
f4.close()
f5.close()
f6.close()

NOTE:也能够用X-Y来求两个集合的差集

>>> X = set(‘spam‘)

>>> Y = set([‘h‘,‘a‘,‘m‘])

>>> X,Y

(set([‘a‘, ‘p‘, ‘s‘, ‘m‘]), set([‘a‘, ‘h‘, ‘m‘]))

>>> X - Y

set([‘p‘, ‘s‘])

时间: 2024-10-04 17:45:29

Python 小程序,对文件操作及其它的相关文章

Python 小程序,对文件操作及其他

下面是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比如说,从文件中读取一行数据,分别存放于列表中,再对列表进行操作,如去掉里面的重复项,排序等操作. 常见对文件中行进行操作: #这里列出两个常用的方法 方法01: 一次性读取所有行 >>> f = file('1.txt') >>> while 1: lines = f.readlines() if not lines: break for line in lines: print l

积累的VC编程小技巧之文件操作

1.删除文件夹 // 删除文件夹及其所有内容void CBaseDoc::RemoveFolder(const CString &strPathName){    CString path = strPathName;    if (path.Right(1) != _T("\\"))        path += _T("\\");    path += _T("*.*");    CFileFind ff;    BOOL res =

python小程序之一

来个Python小程序 #输入年月日确定这个日期是一年中的第多少天# -*- coding: UTF-8 -*-y=int(raw_input("请输入年:"))m=int(raw_input("请输入月份:"))d=int(raw_input("请输入日期:"))a=(0,31,28,31,30,31,30,31,31,30,31,30,31)if m>12: raise ValueError("输入月份错误")if

python字符串处理与文件操作

1.strip函数 strip是trim(裁剪)掉字符串两边的空格或字符.(lstrip/rstrip) 如: 空格 theString = ' abcdbcyesornoabcbacdd ' print theString.strip() abcdbcyesornoabcbacdd 字符 theString = 'abcdbcyesornoabcbacdd' print theString.strip('abcd') #去掉两端的abcd字符 yesorno 问题:如何去掉中间空格. theS

第一个python小程序,2进制转10进制

#Bin to Dec #my first python programe n = c = itm = 0 a = raw_input('please input Binary number:\n') for n in range(0,len(a)):    b = a[n:n+1] #   print 'n is', n #   print 'b is',b #   print 'len',len(a[n:])       if b == '1':    c = 2**(len(a[n:])-

Python小程序,读取ACCESS数据库,然后list数据

曾经做过的一个Python小程序,读取ACCESS数据库,然后list数据 # -*- coding: cp936 -*-import wximport wx.libimport sys,glob,randomimport win32com.clientreload(sys)sys.setdefaultencoding('utf-8')class DemoFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1,u"安

Python小程序练习二之装饰器小例子

Python小程序练习二之装饰器小例子 装饰器: 装饰器实际上就是为了给某程序增添功能,但该程序已经上线或已经被使用,那么就不能大批量的修改源代码,这样是不科学的也是不现实的,因为就产生了装饰器,使得其满足: 1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 那么根据需求,同时满足了这两点原则,这才是我们的目的. 装饰器的原则组成: < 函数+实参高阶函数+返回值高阶函数+嵌套函数+语法糖 = 装饰器 > 错误例子: 1.1Decorators.py 1 # The aut

图解微信小程序---调用API操作步骤

图解微信小程序---调用API操作步骤 什么是API API(Application Programming Interface,应用程序编程接口:是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节. 通俗的讲API就是接口,就是通道,负责一个程序和其他软件的沟通,本质是预先定义的函数. API通常是以Http的形式提供,它隐藏的含义就是,只要你符合我定义的标准,你就可以来使用我. 注册账号 填写注册信息 登陆 管

python学习笔记-(七)python基础--集合、文件操作&amp;函数

本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: 1 2 3 4 >>> list_1 = [1,4,4,5,6,7,9,10] >>> list_1 =set(list_1) >>> print(list_1) {1, 4, 5, 6, 7, 9, 10} 2)关系测试:测试两组数据之间的关系,交集.并集.