首页 > 其他分享 >9. 文件操作

9. 文件操作

时间:2024-07-23 22:07:26浏览次数:18  
标签:fp 文件 encoding 写入 模式 操作 data

1. 文件的两种打开方式

方式一:打开后复制给句柄,句柄操作文件

句柄   =   oopen(文件路径,操作模式,编码格式)

其中操作模式有三种:

r    只读模式   只能读不能写

w   只写模式   只写不能读

a    只追加模式   文件数据末尾添加内容

 方式二:使用with关键字,自动打开和自动关闭文件

2. 文件的读写方式

2.1   r 只读模式   

只能读不能写

文件不存在时会报错

with open('a.txt', 'r', encoding='utf-8') as f:
    data = f.read()

2.2   w   只写模式 

只能写不能读

文件不存在时会自动创建一个文件

w模式又称覆盖写模式,每一次写入数据时都将文件原本的内容清空,再写入新的数据

with open('c.txt', 'w', encoding='utf-8') as f:
    f.write('Lionel Messi')

2.3   a    只追加模式

如果文件不存在则新建文件并写入数据

文件数据末尾添加新的数据

with open('d.txt', 'a', encoding='utf-8') as f:
    f.write('Neymar')

3. 文件的操作方式

3.1    + 模式

让原本的模式扩展出新的模式

r+    既能读又能写     这种模式下的写是覆盖写

 w+  既能写又能读

不建议采用  + 模式,对于一个文件来说要么就是向其中写入数据,要么就是从其中读取数据

3.2    b模式

二进制模式   可以操作任意类型的文件

r     rb    b不可省略

w   wb   b不可省略

a    ab   b不可省略

1. 该模式可以操作任意类型的文件

2. 该模式一定不能指定encoding参数 

3.  该模式读写都是以byte类型(二进制)为最小单位

 将以上读取到的二进制数据写入到一个新的文件

 3.3  文件读写代码举例

# 先写入一个列表
# num_list = [1, 2, 3]
# write() argument must be str, not list
# with open("1.text", "w", encoding="utf-8") as fp:
#     fp.write(str(num_list))

# 再读取出来
# with open("1.text", "r", encoding="utf-8") as fp:
#     data = fp.read()
# print(data, type(data))  # <class 'str'>

# with open("2.text","a",encoding="utf-8") as fp:
#     fp.write("dream|521|666" + "\n")

'''
user_data = {}
with open("2.text", "r", encoding="utf-8") as fp:
    data = fp.read()
for i in data.split():
    username, password, hobby = i.split("|")
    user_data[username] = {
        "username": username,
        "password": password,
        "hobby": hobby
    }
print(user_data)
'''

4. 文件操作的内置方法

4.1  r模式的内置方法

f.read()  一次将内容全部读取出来

 f.readline()     只读取一行的数据

 f.readlines()   读取所有数据,但是每一行数据是列表中的一个元素

 for i  in f:   句柄可以被遍历,遍历得到的每一个元素是行

 f.readable()  判断当前句柄对象是否可读

 4.2 w模式的内置方法

f.write()  一次将所有内容全部写入

f.writelines(列表)   将列表中的每一个元素首尾拼接后一次写入

f.writeable()    判断当前句柄对象是否可写

在没有退出with语句之前,连续write是可以持续写入数据的

 

标签:fp,文件,encoding,写入,模式,操作,data
From: https://www.cnblogs.com/hbutmeng/p/18319405

相关文章

  • 7.23 如何上传库--打包操作
    1.创建包    要创建一个文件夹,再在文件夹里创建Python一个软件包。2.文件里会自带一个‘ _init_.py' ,然后再创建一个‘.py’文件,我们给他命名为‘demo.py’,然后在‘demo.py’里面添加如下代码:fromsetuptoolsimportsetupsetup(name="my_pa......
  • 学习C语言第十一天(操作符)
    1.算术操作符/    整型的除法    1/2--->0        出不开得到商    浮点型除法    1.0/2--->0.5    保证至少有一个小数  %    计算整除之后的余数     %操作符两端必须是整数   *若要......
  • 090、Python 写Excel文件及一些操作(使用xlwt库)
    要写Excel文件,我们需要使用第三方库。xlwt库是一个常用的写Excel的第三方库,它同时支持.xls和.xlsx。要使用第三方库,首选需安装:pipinstallxlwtxlutils安装完成后,我们就可以引入库来进行相关操作了。使用xrwt库写Excel文本,可以按以下步骤操作:1、第一步:创建工作簿(Wor......
  • [AHK2] 配置文件2
    开始先前,我们设计了一种简单的配置文件语法,可以方便的在记事本中编辑,然后进行读取;但是,功能停留在了读取上。事实上,我们还需要修改和写入功能,所以,今天我们来实现它。实现功能首先明确目标:实现修改功能实现写入功能要实现这两个目标,显然需要一个额外的变量来记录读取的文档......
  • [rCore学习笔记 017]实现批处理操作系统
    写在前面本随笔是非常菜的菜鸡写的。如有问题请及时提出。可以联系:[email protected]:https://github.com/WindDevil(目前啥也没有本章目的实现批处理操作系统,每当一个应用程序执行完毕,都需要将下一个要执行的应用的代码和数据加载到内存.应用加载机制在操作系统......
  • 记录一下oracle 19c的集群节点移除、新增操作
    虽然掌握得不够深入,但越来越讨厌oracle数据库这个软件了,实在不愿意再孤岛这个笨重、复杂的oracle了。今天花了好几个小时操作一个实验环境的迁移、配置,记录几个步骤吧,也许后续会有用。■查看数据库配置信息[oracle@node1:0~]$srvctlconfigdatabase-dblikingdbDatabaseu......
  • 【分享】WinRAR五大实用功能详解:让文件管理更高效
    WinRAR作为一款功能强大的压缩和解压缩工具,拥有许多实用功能。今天来分享其中的5个功能,一起来看看这些功能如何设置吧!功能一:文件压缩文件压缩是WinRAR的基本功能,通过压缩文件可以减少存储空间和传输时间。1.选择要压缩的目标文件或文件夹,右键点击并选择【添加到压缩文件.........
  • 手写操作系统:一切从主引导扇区开始
    项目简介本项目将从零实现一个基于x8632位的操作系统,系统支持多进程的运行,虚拟内存,进程与进程之间隔离,文件系统。开发语言:汇编语言与C语言,主要是C语言。开发工具:gcc编译器,gdb调试器,qemu虚拟机,dd工具,CMake.........开发环境:windows11操作系统,VScode编辑器。计算机启动......
  • pip更新openai的时候提示系统找不到指定文件XXXXXX
    pip更新openai的时候提示系统找不到指定文件XXXXXX简单来说就是下面这样,本来在anaconda3里面存在一个版本,想要更新成最新版,结果一直报错而且本身系统就有另一个Python版本,使用的是vscode的界面进行的内核选择,自带env,总是更新不到anaconda3中的版本这种想了下,很简单,直接将对应......
  • 【学习笔记】Kylin-Desktop-V10-SP1 麒麟系统安装CrossOver软件的详细操作步骤
    一、前期准备1.关于CrossOverCrossOver是一款系统兼容软件,它让您可以在Mac和Linux系统上直接运行Windows应用,不用安装虚拟机;直接通过CrossOver软件,从dock直接启动Windows应用说明:CrossOver软件是一款付费使用软件,但支持14天试用期2.安装麒麟系......