首页 > 其他分享 >2.文件读写操作

2.文件读写操作

时间:2024-04-29 23:22:41浏览次数:28  
标签:文件 原文件 utf 读写操作 encoding mode txt open

"""
一.有如下文件,1.txt,里面的内容为:
    键盘敲烂,
    月薪过万,
    键盘落灰
    狗屎一堆
"""
"""
分别完成以下功能:
a:将原文件全部读出来并打印
b:在原文件后面追加一行内容:信不信由你,反正我信了.
c:将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了
d:将原文件全部清空,换成下面的内容:
    每天坚持一点,
    每天努力一点,
    慢慢你会发现,
    你的进步越来越大.
e:将原文件内容全部读取出来
    并在'键盘落灰'这一行的前面加一行,'年薪百万'
    然后将更改之后的新内容,写入到一个新文件:a1.txt
"""

# a:将原文件全部读出来并打印
with open('1.txt',mode='r',encoding='utf-8') as fp:
    res = fp.read()
    print(res)

# b:在原文件后面追加一行内容:信不信由你,反正我信了.
with open('1.txt',mode='a',encoding='utf-8') as fp:
    fp.write("\n\t信不信由你,反正我信了.")

# c:将原文件全部读出来,并在后面添加一行内容:信不信由你,反正我信了
with open('1.txt',mode='a+',encoding='utf-8') as fp:
    print(fp.read())
    fp.write("\n\t信不信由你,反正我信了.")

# d:将原文件全部清空,换成下面的内容:
with open('1.txt',mode='w',encoding='utf-8') as fp:
    res = """\t每天坚持一点,
    每天努力一点,
    慢慢你会发现,
    你的进步越来越大.
    """
    fp.write(res)

# e:将原文件内容全部读取出来,并在'键盘落灰'这一行的前面加一行,'年薪百万',然后将更改之后的新内容,写入到一个新文件:a1.txt
with open('1.txt',mode='r+',encoding='utf-8') as fp:
     lst = fp.readlines()
     print(lst)
     lst.insert(-2,"\t年薪百万,\n")

with open('a1.txt',mode='w+',encoding='utf-8') as fp1:
    fp1.writelines(lst)


"""
二.有如下文件,1.txt,里面的内容为:
    葫芦娃,葫芦娃,
    一根藤上七个瓜,
    风吹雨打都不拍,
    啦啦啦啦.

分别完成下面的功能:
a:以r+的模式打开原文件,判断原文件是否可读,是否可写
b:以r的模式打开原文件,利用for循环遍历文件对象
c:以r的模式打开原文件,以readlines()方法读取出来,并循序遍历
d:以r模式读取"葫芦娃,葫芦娃,"前四个字符
e:以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符
f:以r模式打开文件,从"风吹雨打...."开始读取,一直读到最后
g:以a+模式打开文件,先追加一行:"喜洋洋与灰太狼"然后再全部读取出来
h:截取原文件,截取内容:"葫芦娃,葫芦娃"
"""

# a:以r+的模式打开原文件,判断原文件是否可读,是否可写
with open('a1.txt', mode="r+", encoding="utf-8") as fp1:
    print(fp1.readable(), fp1.writable())

# b:以r的模式打开原文件,利用for循环遍历文件对象
with open('a1.txt', mode="r", encoding="utf-8") as fp2:
    for line in fp2:
        print(line.strip())

# c:以r的模式打开原文件,以readlines()方法读取出来,并循序遍历
with open('a1.txt', mode="r", encoding="utf-8") as fp3:
    res = fp3.readlines()
    for i in res:
        print(i.strip())

# d:以r模式读取"葫芦娃,葫芦娃,"前四个字符
with open('a1.txt', mode="r", encoding="utf-8") as fp4:
    print(fp4.read(4))

# e:以r模式读取第一行内容,并去除此行前后的空格,制表符,换行符
with open('a1.txt', mode="r", encoding="utf-8") as fp5:
    print(fp5.readline().strip())

# f:以r模式打开文件,从"风吹雨打...."开始读取,一直读到最后
with open('a1.txt', mode="r", encoding="utf-8") as fp6:
    lst = fp6.readlines()
    for i in lst[-2:]:
        print(i)

# g:以a+模式打开文件,先追加一行:"喜洋洋与灰太狼"然后再全部读取出来
with open('a1.txt', mode="a+", encoding="utf-8") as fp6:
    fp6.write("喜洋洋与灰太狼.")
    fp6.seek(0)
    print(fp6.read())

# h:截取原文件,截取内容:"葫芦娃,葫芦娃"
with open('a1.txt', mode="r+", encoding="utf-8") as fp7:
    fp7.truncate(24)


""""
三.文件内容a.txt内容:每一行内容分别为商品名字,价钱,个数
apple 10 3
tesla 10000  1
mac 3000 2
lenovo 30000 3
chicken 10 3

变成如下数据格式,并计算出总价格
[
{'name':'apple','price':10,'amount':3}
{'name':'tesla','price':10,'amount':1}
]
"""

with open('a1.txt', mode='r', encoding='utf-8') as fp8:
    lst = []
    total = 0
    for i in fp8:
        res = (i.strip().split())
        dic = {}
        dic['name'] = res[0]
        dic['price'] = int(res[1])
        dic['amount'] = int(res[2])
        sum = dic['price'] * dic['amount']
        total += sum
        lst.append(dic)
    print("1.数据格式:", lst)
    print("2.总价格:", total)

标签:文件,原文件,utf,读写操作,encoding,mode,txt,open
From: https://www.cnblogs.com/xianyuq/p/18166822

相关文章

  • 使用图集Atlas创建Fnt文件的工具
    fnt文件生成unity字体的原理其实就是渲染图集Atlas上的Sprite,这边直接利用Unity自带的图集工具生成fnt文件注意:这里生成的fnt文件还没发直接用,因为没有关联字符,这个工具只是第1步,要配合Fnt编辑工具一起使用 publicclassSpriteToFntTool:EditorWindow{[MenuItem("......
  • hyperf文件上传和url函数
    2024年4月29日11:24:35配置静态资源如果您希望Swoole来管理静态资源,请在config/autoload/server.php配置中增加以下配置。return['settings'=>[...//静态资源'document_root'=>BASE_PATH.'/public','enable_sta......
  • 文件属性
    查看[root@localhost~]#ls-ltotal64dr-xr-xr-x2rootroot4096Dec142012bin[root@localhost~]#ll总用量4-rw-------.1rootroot12583月714:47anaconda-ks.cfg#第一个字符当为d则是目录当为-则是文件;若是l则表示为链接文档(linkfil......
  • 深入理解 C++ 中的多态与文件操作
    C++多态多态(Polymorphism)是面向对象编程(OOP)的核心概念之一,它允许对象在相同操作下表现出不同的行为。在C++中,多态通常通过继承和虚函数来实现。理解多态想象一个场景,你有一个动物园,里面有各种动物,如猫、狗、鸟等。每个动物都有自己的叫声。使用面向对象编程,我们可以创建一个......
  • windows使用samba共享linux文件服务
    一、服务结构服务端:linux服务器192.168.2.251客户端:windows服务器192.168.2.252二、linux部署samba服务端1.安装samba~]#yum-yinstallsamba2.创建共享文件夹~]#mkdir/mnt/svr33.创建samba用户~]#smbpasswdwyg或者~]#pdbedit-a-utest密码:wyg.1234.编......
  • C语言关于头文件的使用
    截图:main.c////Createdbyclouon2024/4/29.//#include<stdio.h>#include"main.h"//包含自己实现的头文件//定义全局变量intcnt;intsum;//定义函数intfunc(intx,chary){return0;}//定义函数intfunc2(intx,inty){returnx+y;}......
  • C语言关于多源文件的调用
    图片A.c////Createdbyclouon2024/4/29.//#include<stdio.h>#include"A.h"voidfunc(){printf("helloworld\n");}A.h////Createdbyclouon2024/4/29.//#ifndefMULTIPLE_SOURCE_FILES_A_H#defineMULTIPLE_SOUR......
  • Markdown文件上传到博客图片处理
    Markdown文件上传到博客图片处理使用Dotnet-cnblog工具可以配合typora实现自动上传md文件里图片到博客园的图床,这样就不用自己一张张来上传Dotnet-cnblog安装使用1.配置NET环境net环境下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/5.0下载后安装NET环境,运行c......
  • Nuxt2项目Js文件使用Vuex
    背景当前项目是Nuxt2框架,建立了Vuex仓库。通过返回一个函数的形式,建立Vuex代码如下importVuefrom'vue'importVuexfrom'vuex'Vue.use(Vuex)conststore=()=> newVuex.Store({ state:{ name:'abc' }, mutations:{ setName(state,data){ ......
  • AWS 文件预签名URL
     1.《获取STS临时授权凭证》2.《通过STS Token分片上传文件》一、相关文档1.AWS S3预签名URL文档:https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/example_s3_Scenario_PresignedUrl_section.htmlAWS S3只针对文件的存储,若想实现阿里云oss通过URL参数对图......