首页 > 其他分享 >Day 9 文件基本处理 + 相(绝)对路径 + 文件打开方式 + 文件拷贝

Day 9 文件基本处理 + 相(绝)对路径 + 文件打开方式 + 文件拷贝

时间:2024-10-22 13:21:20浏览次数:7  
标签:文件 fr text Day date mode print 打开方式

目录

0 昨日回顾

字符编码

字符编码:在文件中存/取/python3解释器解释的时候,字符会发生一种变换,例如a->>00001111

存:从内存到硬盘

取:从硬盘到内存

python3解释器解释:在python3解释器解释的时候,会新开辟一块内存空间放入变量,python3回把“name = ‘nick’ ”以unicode的形式生成一个变量,print(name)

1 基本的文件处理

1.1 文件是什么?

文件是操作系统提供的虚拟单位,有了文件我们可以读取数据,没有文件的话应该去硬盘上扣动机械手臂去寻找数据

1.2 如何使用文件

  1. 打开文件
  2. 读写数据
  3. 保存
  4. 关闭文件

1.3 读取 关闭

  • 读取文件fr.read() fr.readline()
  • del f 或删除文件名f,但文件还处于开启状态
  • 关闭文件 f.close() 不仅关闭了文件,且关闭了文件
  1. 打开文件的那一瞬间是在操作硬盘和内存
  2. python3能操控硬盘和内存吗?一定不能,因为他是应用程序
  3. 你看到的python3打开文件并操控。都是基于操作系统的
  4. 但是你只是使用了del f,只是在删除f这个变量名的内存占用
  5. 但是我们从来都没有告诉操作系统关闭文件
  6. 所以我们必须使用f.close(0关闭文件)

1.4 写

  • fw.write() 清空文件后写入内容
  • fw.flush() 快速刷入硬盘

2 绝对路径与相对路径

2.1 绝对路径

  • 绝对:完全不一样
  • 绝对路径:从根目录一直到你需要的文件路径
fr = open(r'F:\python从入门到放弃\D9.md',mode ='r',encoding='utf-8' )
date = fr.read()
print(date)
fr.close()

2.2 相对路径

  • 相对:还有点一样的

  • 相对路径:从当前文件夹开始,到你需要的文件路径

3 文件打开的三种方式

3.1 mode = 'r' ,只读

fr = open(r'F:\python从入门到放弃\D9.md',mode ='r',encoding='utf-8' )   #不加mode,默认为rt
date = fr.read()
print(date)
fr.close()

3.2 mode = 'w',只写,清空文件再写入

fw = open(r'C:\Users\Administrator\Desktop\text.txt',mode ='w',encoding='utf-8' )
date = fw.write('lucky \n good good study \n day day up')
print(date)
fw.close()

3.3 mode = 'a',追加,在后面追加写入文件

fw = open(r'C:\Users\Administrator\Desktop\text.txt',mode ='a',encoding='utf-8' )
date = fw.write('lucky \n good good study \n day day up')
print(date)
fw.close()

3.4 mode = 'rt',打开的text文本类型

fr = open(r'C:\Users\Administrator\Desktop\text.txt',mode ='rt',encoding='utf-8' )
date = fr.read()
print(date)
fr.close()

3.5 mode = 'rb',打开的bytes类型,二进制

fr = open(r'C:\Users\Administrator\Desktop\text.txt',mode ='rb')
date = fr.read()
print(date)
fr.close()

补充:

  • \t \n都有特殊意义,可以再加一个反斜杠\来取消特殊意义,也可以在前面加个r
  • b表示,你写的字符串为二进制,在打印的时候不需要使用终端的编码进行处理,直接打印原生的二进制
  • r 告诉接下来的字符串,里面所有的特殊字符都变得无意义,直接原生输出
  • t和b 不能单独使用,必须得和r/w/a一起使用
  • r/w/a能单独使用

4 with管理上下文

with open(r'C:\Users\Administrator\Desktop\text.txt','r',encoding='UTF-8') as fr:
    date = fr.read()
    print(date)

5 文件的高级应用

  • r只读/w/只写/a追加,可读可写(不推荐)r+ w+ a+

  • 其实这一段看视频的时候没怎么记,因为刚开始脑子懵懵的,迷迷糊糊的听完了,稀里糊涂的,但又往后继续看大概了解了一下

  • 其实这一块的东西都不太重要,一个是r+,w+,a+等,即一个with open 即能可读可写,但好像说容易搞混,一般不用一般即需要读又需要写时别嫌麻烦,用两个with open,

  • 其次就是直至,f.seek(),来寻找指针的位置,并对该位置的字符进行修改,但其实是替换,还很离谱,按相同的字节数替换的,如一个字母是一个字节,一个文字是六个字节,那么修改两个文字要替换掉六个字母,也不重要,水导说的

  • 当然,这一块肯定还有问题,不管了大概就这些,有一些基础的知识遇到了就问kimi

6 文件的拷贝

from math import atan2

with open('text.txt','r',encoding='UTF-8') as fr:
    data = fr.read()
    print(data,type(data))
    data = data.replace('sb','帅比')
    print(data)
# with open('text_swap.txt','w',encoding='UTF-8') as fw:
#     fw.write(data)
#
# import os
# os.remove('text.txt')
# os.rename('text_swap.txt','text.txt')
'''
qq 想修改这个程序,微信也想修改这个程序
qq想修改‘ tank dsb' 中s改为a,微信想把’s'修改成‘b’,这两个修改一定有先后顺序,那么s已经变成了a,
但是微信找的到‘s'吗?找不到了,就报错了

qq想修改‘ tank dsb' 中s改为a,微信想把’s'修改成‘b’,所以我给qq一份拷贝文件,我给微信一份拷贝文件,
然后让他们各自修改,修改成功后,删除原文件,修改替换后的文件名为原文件
'''

# with open('text.txt', 'r', encoding='utf-8') as fr:
#     # print(fr.readlines())   # 按行打印
#     # for i in fr.readlines():    #迭代器  相当于拿了一筐鸡蛋
#     #     print(i)
#     print('*'*100)
#     for i in fr:    #生成器  相当于拿了一只老母鸡
#         print(i)

总结:

1.with open(filename,mode,encoding) as file:

file+操作

2.r/w/a/ t/b rt/rb/wt/at

3.文件的复制

标签:文件,fr,text,Day,date,mode,print,打开方式
From: https://www.cnblogs.com/chsun12/p/18492462

相关文章

  • 【Markdown速成】半小时入门Markdown(后缀.md文件详解)
    目录一.认识MarkdownMarkdownTypora二.Typora设置三.Markdown语法1.标题2.正文2.1分割线2.2删除线2.3下划线2.4斜体2.5粗体2.6斜粗体2.7高亮 2.8字体属性(大小及颜色)2.9对齐方式2.10引用3.列表有序列表无序列表 4.超链接5.表格6.代码一.认识Markdown......
  • day6:网络管理
    一,网络模型和通信协议网络模型概述网络模型是为了标准化和简化网络通信的设计框架。最常见的两个网络模型是OSI模型和TCP/IP模型。这两个模型通过分层的结构来定义网络通信的各个步骤和任务,每一层负责不同的功能。1.OSI模型(OpenSystemsInterconnectionModel)OSI......
  • 找到占用磁盘最多的文件或目录,可以使用du和sort
    想要找到占用磁盘最多的文件或目录,可以使用du和sort命令: du-h/path/to/directory|sort-rh|head-n10其中:du-h/path/to/directory用于计算指定目录下的所有文件和子目录的大小,并以人类可读的格式显示。sort-rh用于按磁盘使用情况的大小(逆序)对输出进行排序。h......
  • EasyExcel读取文件数据不能映射到实体的一种情况(对于链式调用实体的数据映射支持)
    除去在网上能搜到的由于表头配置不对、单元格格式影响、文件编码以及依赖版本之类的问题以外,还存在一个可能导致这个问题的原因,也是我现在遇到的,记录一下。先说结论,EasyExcel不支持映射数据到使用了链式调用的实体类上。我的情况是在接收Excel数据的实体类上添加了Lombok注解:@A......
  • 文件系统的物理结构分配
    在计算机世界中,文件是数据的抽象集合,它为用户提供了一种直观的方式来处理数据。而这些文件的数据最终必须存储在具体的物理设备上,例如HDD、SSD或是USB。这些存储设备通过设备控制器将他们的物理介质映射为一个巨大的、可随机寻址的地址空间,我们可以将其看作一个超大的数组。一个......
  • HyperMesh打开保存文件与面板功能使用
    打开和保存文件在HyperMesh中,打开和保存文件是最常用的命令。本节介绍HyperMesh打开和保存文件的多种方式。后续的练习中假定用户已经熟练使用HyperMesh进行文件打开和保存操作。本节将学习:  -打开HyperMesh文件。-在当前HyperMesh窗口中导入文件。-保存Hyper......
  • PbootCMS提示模板文件/template/default/html/about.htmI不存在怎么办
    解决方案一:在 default 文件夹下新建 html 文件夹,将模板文件移动进去使用FTP客户端:使用FTP客户端(如FileZilla)连接到你的服务器。导航到网站根目录的 template 文件夹。新建 html 文件夹:在 default 文件夹中新建一个名为 html 的文件夹。移动模板......
  • shell实例手册-文件操作
    一、文件常用操作   touchfile             #创建空白文件   rm-rf目录名          #不提示删除非空目录(-r:递归删除-f强制)   dos2unix               #windows文本转linux文本    unix2dos    ......
  • PbootCMS打开后提示读取数据库文件失败: Unable to open database
    问题表现打开PbootCMS时提示“读取数据库文件失败:Unabletoopendatabase”。原因数据库文件没有读写权限。解决方法设置文件夹权限:将 data 文件夹设置为777权限。同时将 config、static、runtime、data 文件夹设置为可读写权限。注意事项备份文件......
  • Meta文件
    UnityMeta文件当我们把新的资源导入Unity时,Unity会自动做下面这件事:分配唯一ID创建.meta文件处理资源分配唯一ID:Unity会维护一个自己资源列表,在将资源导入Unity的时候,Unity会先检测这个资源列表,然后为导入的资源分配一个唯一的ID,在Unity中会使用此ID来引用资源。创......