• 0513---文件操作练习题


    #习题1:有四个数字:1,2,3,4 ,能组成多少个互不相同且无重复数字的三位数
    '''
    result =[]

    for i in range(1,5):
        for j in range(1,5):
            for k in range(1,5):
                if i!=j and j!=k and k!=i:
                    result.append(str(i)+str(j)+str(k))

    print(result)
    print(len(result))
    '''

    #习题2:判断 一个文件中有几行含英文单词
    '''
    import string
    count =0
    with open(r"E: esult.txt","r",encoding="utf-8") as fp:

        contents =fp.readlines()

        for line in contents:
            for character in line:
                if character in string.ascii_letters:
                    count +=1
                    break
    print(count)
    '''

    #习题3:以r+方式,把一句话追加到文件末尾,然后读出所有文件

    with open(r"E:
    esult.txt","r+",encoding="utf-8") as fp:
        fp.seek(0,2)
        fp.write("光荣之路测试")
        fp.seek(0,0)
    print(fp.read())


    #习题4:把一个文件内容中的boy替换成xxx

    '''
    with open(r"E:
    esult.txt","r+",encoding="utf-8") as fp:
        content =fp.read()
        content =content.replace("xxx","boy")
        fp.seek(0,0)
        fp.write(content)
    '''
    #方法2:
    '''
    with open(r"e:
    esult.txt","r+") as fp:
        content =fp.readlines()
        fp.seek(0,0)
        for line in content:
            fp.write(line.replace("xxx","boy"))
    '''
    #习题5:一个文件拆分成5个文件
    #算法:1 读取整个文件的内容 ,计算文件的长度
    #2 把整个长度除以5 3 然后写入新的文件中
    '''
    #记录文件行数
    file_line =0
    #记录文件数
    file_no =1
    backup_content =""
    fp1 =open(r"E:
    esult.txt","r",encoding="utf-8")
    for line in fp1:
        file_line +=1
        backup_content +=line
        if file_line %2 ==0:
            with open("e:\result"+str(file_no)+".txt","w+",encoding="utf-8") as fp2:
                fp2.write(backup_content)
            file_no +=1
            backup_content
    '''
    
    #方法二:
    def split_file(file_path,file_name,num):
        import os.path
        file_content =""#文件内容
        file_name_no =1 #第几个文件
        with open(file_path+file_name,"r",encoding="utf-8") as fp:
            file_length =len(fp.readlines())
            fp.seek(0,0)
            file_line =0#记录当前读取的行数
            for line in fp:
                file_content +=line #
                file_line +=1
                if file_line==int(file_length/num)*file_name_no:#每一个文件的行数等于整个原文件的长度除以拆分的文件数在乘以是
    
    第几个文件
                    with open(file_path+os.path.splitext(file_name)[0]+str(file_name_no)+".txt","w",encoding="utf-8") as fp1:
                        file_name_no +=1
                        fp1.write(file_content)
                        file_content =""
    
    
    split_file("e:\","result.txt",5)
    #习题5:过滤掉一个文件中空行
    
    with open("e:\result.txt","r",encoding="utr-8") as fp:
        for line in fp:
            if line.strip()=="":
                continue
            with open("e:\test123.txt","a",encoding="utf-8") as fp1:
                fp1.write(line)
    #习题6:处理数据文件
    '''
    算法分析:
    遍历每一行,每行取头8个字母
    新建文件,文件名为首8个字母,然后把第15字符后的所有字
    符拷贝到文件中
    关闭文件
    '''
    with open("d:\pytest\3.txt","r",encoding="utf-8") as fp:
        for line in fp:
            with open("d:\pytest\"+str(line[:14])+".txt","w",encoding="utf-8") as fp1:
                fp1.write(line[14:])
    #习题7:删除一个目录下文件
    import os
    import os.path
    os.chdir(r"D:pytest	estmanman")
    for i in os.listdir(r"D:pytest	estmanman"):
        print(i)
        if os.path.isfile("D:\pytest\testmanman\"+i):
            os.remove(i)
  • 相关阅读:
    员工管理系统————员工删除模块
    员工管理系统————员工管理模块
    员工管理系统————登陆验证模块
    员工管理系统————首页登陆模块
    为什么大多数编程语言中的数组都从0开始
    C/C++大数库简介
    一个比较全面的java随机数据生成工具包
    Linux环境下JDK/Eclipse一键安装脚本
    OOAD与UML笔记
    Cache模拟器(CacheSim)
  • 原文地址:https://www.cnblogs.com/wenm1128/p/10858051.html
Copyright © 2020-2023  润新知