Python的几个文件操作小程序

1. 接受用户的连续输入并保存到指定的文件中

def filewrite(filename)
    f = open(filename, 'w')
    print('请输入内容【单独输入\':w\'保存退出】:')

    while True:
        writesome = input()
        if writesome != ':w':
            f.write('%s\n' % writesome)
        else:
            break

    f.close()


filename = input('请输入文件名:')
filewrite(filename)


2.比较指定的两个文件中的内容是否相同,并打印不同的标志位

def filecompare(file1, file2):
    f1 = open(file1)
    f2 = open(file2)
    count = 0 # 统计行数
    differ = [] # 统计不一样的数量


    for line1 in f1:
        line2 = f2.readline()
        count += 1
        if line1 != line2:
            differ.append(count)


    f1.close()
    f2.close()
    return differ


file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')


differ = filecompare(file1, file2)


if len(differ) == 0:
    print('两个文件完全一样!')
else:
    print('两个文件共有【%d】处不同:' % len(differ))
    for each in differ:
        print('第 %d 行不一样' % each)

3. 打印文件中前N行的内容

def fileview(filename, linenum):
    print('\n文件%s的前%s的内容如下:\n' % (filename, linenum))
    f = open(filename)
    for i in range(int(linenum)):
        print(f.readline(), end= '')


    f.close()


filename = input(r'请输入要打开的文件(C:\\test.txt):')
linenum = input('请输入需要显示该文件前几行:')
fileview(filename, linenum)

4.打印文件中指定范围的内容

def fileview(filename, linenum):
    if linenum.strip() == ':':
        begin = '1'
        end = '-1'

    else:        
        (begin, end) = linenum.split(':')

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


    print('\n文件%s%s的内容如下:\n' % (filename, prompt))


    begin = int(begin) - 1
    end = int(end)
    lines = end - begin


    f = open(filename)  
    
    for i in range(begin):  # 用于消耗掉begin之前的内容
        f.readline()


    if lines < 0:
        print(f.read())
    else:
        for j in range(lines):
            print(f.readline(), end='')
    
    f.close()


filename = input(r'请输入要打开的文件(C:\\test.txt):')
linenum = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21: 或 : 】:')
fileview(filename, linenum)

5.替换文件指定的内容



def filereplace(filename, repword, newword):
    fread = open(filename)


    content = []
    count = 0


    for eachline in fread:
        if repword in eachline:
            count = eachline.count(repword) #count感觉应该用这个
            eachline = eachline.replace(repword, newword)
        content.append(eachline)    


    decide = input('\n文件 %s 中共有%s个【%s】\n您确定要把所有的【%s】替换为【%s】吗?\n【YES/NO】:' \
                   % (filename, count, repword, repword, newword))


    if decide in ['YES', 'Yes', 'yes']:
        fwrite = open(filename, 'w')
        fwrite.writelines(content)
        fwrite.close()


    fread.close()




filename = input('请输入文件名:')
repword = input('请输入需要替换的单词或字符:')
newword = input('请输入新的单词或字符:')
filereplace(filename, repword, newword)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值