python 实现文本要求,详见问题补充 不能使用 shell sed awk
只能使用python解决,不能使用shellsedawk文件test中第50行中的“haiwao”改为“haiwai”打印文件test里面空行所在的行号打印test的第2...
只能使用python解决,不能使用 shell sed awk
文件test中第50行中的“haiwao”改为“haiwai”
打印文件test 里面空行所在的行号
打印test 的第2~5行
打印test以hai结尾的行 展开
文件test中第50行中的“haiwao”改为“haiwai”
打印文件test 里面空行所在的行号
打印test 的第2~5行
打印test以hai结尾的行 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
3个回答
展开全部
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
fobj=open('./aa','r')
i=0
linesave=""
for eachLine in fobj:
i=i+1
#打印空行行号:
if eachLine == "\n":
print i
#打印2-5行:
if i>2 and i<7:
print(eachLine),
#打印hai结尾:
m = re.match(r".*hai$", eachLine)
if m:
print(eachLine),
#替换50行中的“haiwao”改为“haiwai”
if i==50:
eachLine=eachLine.replace('haiwao', 'haiwai')
linesave=linesave+eachLine
else:
linesave=linesave+eachLine
fobj2=open('./aa','w')
fobj2.write(linesave)
fobj.close()
fobj2.close()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
with file("test", "wr") as testfile:
for i,line in range(1, testfile):
if (i >= 2 && i <=5 ) :
print line
if (line == ""):
print i
if ( line.endwith("hai"):
print line
if ( i = 50 ):
print line.replace("haiwao","haiwai")
# 代码没有测试,基本上就上这样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import re
with open("test.txt","r") as A:
Save_Line = A.readlines()
Save_Line[49] = re.sub("haiwao","haiwai",Save_Line[49])
Save_Blank = ''
for line,name in enumerate(filter(lambda x : x.rstrip(),Save_Line)):
if name == '':Save_Blank = Save_Blank + ',' +str(line)
if line in range(5):print name
if name.endwith("hai"):print name
print Save_Blank
with open("test.txt","w") as A:
A.writelines(Save_Blank)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询