文件:小练习

参考 :http://blog.csdn.net/junwei0206/article/details/44988195
1.编写一个程序,接受用户的输入并保存为新的文件,程序实现如图:

这里写图片描述

def fileWriter(fname):
    #接受用户的输入并保存为新的文件
    f = open(fname,"w")
    print('请输入内容【单独输入\':w\'保存退出】:') 
    while True:
        words = input()
        if words !=":w":
            f.write(words+"\n")
            #f.write("%s\n"%words)
        else:
            break
    f.close()
'''
#测试     
fname = input("请输入文件名:")
fileWriter(fname)
'''

2.编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置,程序实现如
图:
这里写图片描述

def fileCompare(filename1,filename2):
    #比较两个文件,返回不同的行号
    f1 = open(filename1,"r")
    f2 = open(filename2,"r")
    count = 0 #统计行数
    diff = [] #统计不一样的行号
    for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            diff.append(count)
    f1.close()
    f2.close()
    return diff
''' 
#测试
filename1 = input("请输入文件名:")
filename2 = input("请输入文件名:")    
diff = fileCompare(filename1,filename2)
if len(diff) == 0:
    print("两个文件完全一样!")
else:
    print("两个文件共有%d个地方不同:"%len(diff))
    for each in deff:
        print("第%d行不一样"%each)
'''

3.编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上,程序实现如图:
这里写图片描述

def filePrint(fname,lineNum):
    #打印输入的行数
    f = open(fname)
    print('\n文件%s的前%s的内容如下:\n'%(fname,lineNum)) 
    for i in range(lineNum):
        print(f.readline())
    f.close()
'''
#测试
file_name = input(r'请输入要打开的文件(C:\test.txt):')  #注意r
line_num = input('请输入需要显示该文件前几行:')  
filePrint(file_name,line_num)  
'''

4.呃,不得不说我们的用户变得越来越刁钻了。要求在上一题的基础上扩展,用户可以随意输入需要显示的行数。(如输
入13:21打印第13行到第21行,输入:21打印前21行,输入21:则打印从第21行开始到文件结尾所有内容)
这里写图片描述

def fileView(fname,lineSize):
    #打印指定范围的行
    (begin,end) = lineSize.split(":",1) 
    if begin == "":
        begin = 1
    else:
        begin = int (begin)
    if end == "":
        end = -1
    else:
        end = int (end)

    if begin == 1 and end == -1 :
        text = "的全文"
    elif begin == 1:
        text = "从开始到%s"%end
    elif end == -1:
        text = "从%s到结束"%begin
    else:
        text = "从第%s行到第%s行"%(begin,end)

    lineNum = end - begin +1

    f = open(fname,"r")

    for i in range(begin-1):#读掉前begin-1行
        f.readline()

    print("\n文件%s%s的内容如下:\n"%(fname,text)) #开始打印

    if lineNum < 0: #打印至结束
        print(f.read())
    else:
        for j in range(lineNum): #打印
            print(f.readline())

    f.close()
'''
#测试
fname = input(r'请输入要打开的文件(C:\\test.txt):')  
lineSize = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或 : 】:')  
fileView(fname, lineSize)  
'''
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值