您的位置:首页 > 编程语言 > Python开发

Python的几个文件操作小程序

2016-04-08 00:50 651 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: