file文本练习

# 1. 现有一个文件test.txt ,内容如下:
# 1234efgh
# abcd5678
# 要求读出文件内容,对内容的顺序进行编辑,然后重新写入到文件,使其为如下形式
# 12345678
# abcdefgh
思路:
In [6]: with codecs.open('text.txt') as f:
   ...:     lines=f.readlines()
   ...:     print '第一行:'+lines[0],
   ...:     print '第二行:'+lines[1],

第一行:1234efgh
第二行:abcd5678

line1=取出第一行的前4个字符+取出第二行的后4个字符
line2=取出第二行的前4个字符+取出第一行的后4个字符
import  codecs
with codecs.open("test.txt", "r") as f:     #读取方式打开文件
   list1 = f.readlines()       #读取全部的两行
   line1 = list1[0][0:4] + list1[1][4:8]   #第一行前四个字节加第二行的后四个字节
   line2 = list1[1][0:4] + list1[0][4:8]   #第二行的前四个字节加第一行的后四个字节

with codecs.open("test.txt", "w") as f: #写入的方式打开文件
   f.writelines(line1+"\n")    #写入第一行
   f.writelines(line2)     #写入第二行


2、将dict3排序后写入到文件dict.txt中,要求格式为
# A 65
# B 66
# C 67
# ...
# x 120
# y 121
# z 122
dict3 = {'A': 65, 'C': 67, 'B': 66, 'E': 69, 'D': 68, 'G': 71, 'F': 70, 'I': 73, 'H': 72, 'K': 75, 'J': 74, 'M': 77, 'L': 76, 'O': 79, 'N': 78, 'Q': 81, 'P': 80, 'S': 83, 'R': 82, 'U': 85, 'T': 84, 'W': 87, 'V': 86, 'Y': 89, 'X': 88, 'Z': 90, 'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}

方法:
In [30]: add=lambda x:x+1 #x是一个参数,返回的结果:x+1
In [31]: add(3)
Out[31]: 4
In [63]: t=('a',1)
In [64]: t1=lambda a:a[0]
In [65]: t1(t)
Out[65]: 'a'

reverse=False 升序
reverse=True  倒序
In [33]: d=[1,23,34,435,67]
In [34]: d.sort(reverse=False)
In [35]: d
Out[35]: [1, 23, 34, 67, 435]


思路:需要用到sorted函数

解:dict3.iteritems()结果是一个元组,然后将元组传入key中,d[0]表示key,d[1]表示值,按key来进行升序
with codecs.open('dd.txt','w') as f:
    for k,v in sorted(dict3.iteritems(),key=lambda d:d[0],reverse=False):
        f.write('{0} {1}\n'.format(k,v))
















本文转自方向对了,就不怕路远了!51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2057799 ,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值