• 文件操作练习


    1.有如下文件,a1.txt,里面的内容为:
    老男孩是最好的学校,
    全心全意为学生服务,
    只为学生未来,不为牟利。
    我说的都是真的。哈哈
    分别完成以下的功能:
    a,将原文件全部读出来并打印。
    b,在原文件后面追加一行内容:信不信由你,反正我信了。
    c,将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了。
    d,将原文件全部清空,换成下面的内容:
    每天坚持一点,
    每天努力一点,
    每天多思考一点,
    慢慢你会发现,
    你的进步越来越大。

    with open("a1","r",encoding="utf-8") as fa,open("a1","a",encoding="utf-8") as fb:
        print(fa.read())
        fb.write("\n信不信由你,反正我信了。")
    with open("a1","r+",encoding="utf-8") as fc:
        print(fc.read())
        fc.write("\n信不信由你,反正我信了。")
    
    with open("a1","w",encoding="utf-8") as fd:
        fd.write("""每天坚持一点,
    每天努力一点,
    每天多思考一点,
    慢慢你会发现,
    你的进步越来越大。""")
    

    2.有如下文件,t1.txt,里面的内容为:
    葫芦娃,葫芦娃,
    一根藤上七个瓜
    风吹雨打,都不怕,
    啦啦啦啦。
    我可以算命,而且算的特别准:
    上面的内容你肯定是心里默唱出来的,对不对?哈哈
    分别完成下面的功能:
    a,以r的模式打开原文件,利用for循环遍历文件句柄。
    b,以r的模式打开原文件,以readlines()方法读取出来,并循环遍历 readlines(),并分析a,与b 有什么区别?深入理解文件句柄与 readlines()结果的区别。
    c,以r模式读取‘葫芦娃,’前四个字符。
    d,以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。
    e,以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将 原内容全部读取出来。

    with open("t1.txt","r",encoding="utf-8") as fa:
        for i in fa:
            print(i.strip())
    with open("t1.txt","r",encoding="utf-8") as fb:
        for i in fb.readlines():
            print(i.strip())
    #a相当于按段打印了一个字符串   b是循环打印一个列表
    with open("t1.txt","r",encoding="utf-8") as fc:
        print(fc.read(4))
    with open("t1.txt","r",encoding="utf-8") as fd:
        print(fd.readline().strip())
    with open("t1.txt","a+",encoding="utf-8") as fe:
        fe.write("\n老男孩教育")
        fe.seek(0)
        print(fe.read())
    

    3.文件a.txt内容:每一行内容分别为商品名字,价钱,个数。
    apple 10 3
    tesla 100000 1
    mac 3000 2
    lenovo 30000 3
    chicken 10 3
    通过代码,将其构建成这种数据类型:[{'name':'apple','price':10,'amount':3},{'name':'tesla','price':1000000,'amount':1}......] 并计算出总价钱。

    with open("a.txt","r",encoding="utf-8") as f:
        lst = f.readlines()
    lst_sum = []
    sum = 0
    for i in lst:
        dic ={}
        ls =i.split(" ")
        dic["name"] = ls[0]
        dic["price"] = int(ls[1])
        dic["amoubt"] = int(ls[2])
        sum += int(ls[1])*int(ls[2])
        lst_sum.append(dic)
    print(lst_sum)
    print(sum)
    

    4.有如下文件:
    alex是老男孩python发起人,创建人。
    alex其实是人妖。
    谁说alex是sb?
    你们真逗,alex再牛逼,也掩饰不住资深屌丝的气质。
    将文件中所有的alex都替换成大写的SB(文件的改的操作)。

    with open("alex","r",encoding="utf-8") as f1,open("alex1","w",encoding="utf-8") as f2:
        string = f1.read()
        string = string.replace("alex","SB")
        f2.write(string)
    import os
    os.rename("alex","alex2")
    os.rename("alex1","alex")
    

    5.文件a1.txt内容(选做题)

    name:apple price:10 amount:3 year:2012
    name:tesla price:100000 amount:1 year:2013
    .......

    通过代码,将其构建成这种数据类型:
    [{'name':'apple','price':10,'amount':3,year:2012},
    {'name':'tesla','price':1000000,'amount':1}......]
    并计算出总价钱。

    with open("a1.txt","r",encoding="utf-8") as f:
        lst = f.readlines()
    lst_num = []
    for i in lst:
        ls = i.strip().split(" ")
        dic = {}
        for j in ls:
            k,v=j.split(":")
            if v.isdecimal():
                dic[k] = int(v)
            else:
                dic[k] = v
        lst_num.append(dic)
    print(lst_num)
    

    6.文件a1.txt内容(选做题)
    序号 部门 人数 平均年龄 备注
    1 python 30 26 单身狗
    2 Linux 26 30 没对象
    3 运营部 20 24 女生多
    .......

    通过代码,将其构建成这种数据类型:
    [{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'},
    ......]

     with open("a11.txt","r",encoding="utf-8") as f:
        string = f.readline()
        lst = f.readlines()
    lst1 = string.strip().split(" ")
    lst_num = []
    for i in lst:
        lst2 = i.strip().split(" ")
        dic = {}
        for j in range(len(lst2)):
            if lst2[j].isdecimal():
                dic[lst1[j]] = int(lst2[j])
            else:
                dic[lst1[j]] = lst2[j]
        lst_num.append(dic)
    print(lst_num)
    
  • 相关阅读:
    安卓系统隐藏滚动条
    jquery 失去焦点时输入框为空时自动填写默认内容
    移动端左右滑动代码
    [转]C#使用FFmpeg 将视频格式转换成MP4示例
    [转]Windows 使用ffmpeg将MP4视频转换为m3u8格式
    [转]搭建flutter开发环境
    [转]ios webview下纯JS实现长按
    [转]SQLServer查询数据库各种历史记录
    [转]Java多线程学习(总结很详细!!!)
    [转]安卓加固之so文件加固
  • 原文地址:https://www.cnblogs.com/ciquankun/p/11191826.html
Copyright © 2020-2023  润新知