python 遍历文件并获取指定内容

def removehead(filename, headlines):
     buffer = []
     with open(filename, 'rt') as handle:
          for i, ln in enumerate(handle):
               if i > headlines:
                    buffer.append(ln)
     with open(filename, 'wt') as handle:
          handle.writelines(buffer)
removehead("aaa",100)

关于enumerate函数的用法如下:

a = ['3', '1223''121', '13', '123', '13', '3', '123''121', '13', '1', '1223','13', '23''13', '1223', '12', '121', '13', '123123','13', '123', '13']
for i in enumerate(a):
     print(i)

结果如下:

(0, '3')
(1, '1223121')
(2, '13')
(3, '123')
(4, '13')
(5, '3')
(6, '123121')
(7, '13')
(8, '1')
(9, '1223')
(10, '13')
(11, '2313')
(12, '1223')
(13, '12')
(14, '121')
(15, '13')
(16, '123123')
(17, '13')
(18, '123')
(19, '13')

对于遍历文件取出指定内容的另一种写法:

from functools import  partial

f = open('aaa','r')
f1 = open('newfile.txt','w')

print(callable(partial(f.readlines,100)))
source = iter(partial(f.readlines,100),[])
for item in source:
     del item[:10]
     f1.writelines(item)
f.close()
f1.close()

偏函数(Partial)

举个例子,来说明一下什么是偏函数

from functools import partial


def sum(*args):
     s = 0
     for n in args:
          s = s + n
     return s


sum_add_10 = partial(sum, 10)  # 10 作用在sum第一个参数的位置
sum_add_10_20 = partial(sum, 10, 20)  # 10 20 分别作用在sum第一个和第二个参数的位置
print('A:')
print(sum)
print('B:')
print(partial(sum, 10))
print(sum_add_10(1, 2, 3, 4, 5))  # --> 10 + 1 + 2 + 3 + 4 + 5 = 25
print(sum_add_10_20(1, 2, 3, 4, 5))

# 结果
A:
<function sum at 0x10df5ee18>
B:
functools.partial(<function sum at 0x10df5ee18>, 10)
25
45

使用partial的时候,第一个参数是一个函数,第二个参数是第一个函数里的参数。而且使用partial的时候必须把结果用一个变量来接收。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值