python基础学习之文件的基础操作方法
打开文件方法
open('xx')
注意,open后括号内加的是文件名,这里默认是当前文件的相对路径,如果不在当前文件层,需要绝对路径,默认打开方法是读取,即read,默认的解码器为当前系统的解码器windows的默认为GBK,写全了是这样:open('xx','r',encoding = 'gbk')。
open()方法结果即是一个句柄,f = opne('xx')
记住,打开文件就一定要关闭文件,否则很占内存!
对文件操作的方法
读取,'r',即read的缩写,文件打开后,只能、仅能读取,其他操作一律报错
读取全部内容:
f = open('xxx','r',encoding = 'utf8')
#‘xxx’是文件名,这里即代表相对路径,'r'代表只读,encoding=‘utf8’,这里是因为系统文件是gbk解码器,但是pycharm默认是utf8,最好统一。
data = f.read() #这一步就是在内存中读取全部内容,即光标从最初依次移动到最末,讲所有的内容读取出来放在内存中,并用变量data保存。
print(data) #输出读取的内容
f.close() #关闭文件
##########代码写一起就是下面这样###############
f = open('xxx','r',encoding = 'utf8')
data = f.read()
print(data)
f.close()
==============================
判断是否可读取
即判断句柄对该文件的操作权限,是否可以读取内容
f = open('xxx','r',encoding = 'utf8')
print(f.readable()) #返回布尔值,判断函数
f.close()
==============================
逐行读取内容
f = open('xxx','r',encoding = 'utf8')
data = f . readline() #读取一行内容
print(data) #打印输出读取的内容
f.close() #关闭文件
注意:文件操作是看文件光标,他走完一行后就停下,在读取的时候,会同步读取你行末的回车键,再次运行该代码,光标不会重置,而是去下一行读取,
f = open('xxx','r',encoding = 'utf8')
print('第一行',f.readline()) #输出第一行的内容
print('第二行',f.readline()) #输出第二行的内容
print('第三行',f.readline()) #输出第三行的内容
print('第四行',f.readline()) #输出第四行的内容
f.close()
===============================
读取所有行,并输出
f = open('xxx','r',encoding = 'utf8')
data = f.readlines()
print(data)
f.close()
读取所有行的内容,并以列表形式输出,会用'\n'提示你每行末有个回车
写内容
w,即write的缩写,仅能写,不能读取,且在该方法打开文件的同时,会清空文件内容,如果文件不存在,则新建该文件
写一行的内容:
f = open('xxx','w',encoding = 'utf8')
f.write('111111\n') #\n是告诉系统到这里该回车了
f.close()
该操作是对文件的实际性操作,不要在内存保存,故没有用变量来保存中间过程
===============================
写多行内容
对应readlines,这里是writelines,但是其传入参数同样应该为readlines的输出结果,即列表
f = open('xxx','w',encoding = 'utf8')
f.writelines(['11111\n','2222222\n','3333333\n'])
f.close
==================================
写入内容一定要是字符串,数字等形式不行,会报错
追加写内容
追加写入,即在文件内容末尾继续写入,‘a’
方法同write
其他方法
‘r+’:可读取可写入
‘w+’:可写入可读取
‘x’:只写模式,不存在不会创建会报错,渣渣
‘x+’:可写可读,不创建,不存在会报错,渣渣
‘a+’:可追加写可读
‘r’、‘r+’、‘w’、‘w+’、‘a’、‘a+’
修改文件内容并保存的方法的
步骤:
从硬盘中读取该文件内容至内存,然后对其进行修改,保存到一个新文件,用新文件覆盖旧的文件【这里要用的一个模块功能,暂时未学习,想来应该是os?】
关键词用法
with open
打开后,自动关闭,不需要在写关闭代码
with open('xx','w',encoding = 'utf8') as f:
f.write('111222333\n')
with open可以同时打开多个文件
with open('xx','w',encoding = 'utf8') as faa,\
('yy','w',encoding = 'utf8') as fbb:
代码解释:
with open的格式,后面赋值给文件句柄,需要用as;打开多个文件的时候,代码太长,为了方便需要隔断,隔断就是找到一个合适的地方,用\标记,然后回车换行。
二进制读取写入方式
f = open('xxx','rb')
内容存储在硬盘上的时候,就是二进制状态,在以打开二进制模式打开的时候,不可以指定编码
【从字符串----编码----》二进制】
【从二进制----解码----》字符串】
f = open('xxx','rb')
data = f.read()
print(data) #输出二进制内容
如果要输出正常内容怎么办,对data进行解码操作
res = data.decode('utf-8')
print(res)
===================================
关于二进制下写入
与读取对应,你写入的也应该是二进制数据,
f = open('xxx','wb')
f.write('asdfa'.encode('utf8'))
====================================
什么时候还会用到二进制读写方法?
其实在open函数中,‘r’,'w','a'等默认是'r','wt','at',这是指针对文本修改,但是文件,不仅仅是文本,还有图片、视频等等;二进制 处理文件,可以是文件跨平台使用,因为不论是Windows还是Linux等系统,底层都是二进制。
python基础学习之文件的基础操作方法的更多相关文章
- Python模块学习filecmp文件比较
Python模块学习filecmp文件比较 filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单.python标准库还提供了difflib模块用于比较文件的内容.关于dif ...
- python 的基础 学习 第五天 基础数据类型的操作方法
1,列表的基本操作方法 1,列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: ...
- python基础学习之文件操作&函数
1.文件处理相关 1.编码问题 ①python2与python3中的默认编码: py2默认使用ASCII码,py3默认使用utf-8 ②为什么会出现中文乱码,中文乱码的情况有哪些? #sys.stdo ...
- Python基础学习之文件(2)
文件内建方法 1.输入 read()方法用来直接读取字节到字符串中,最多读取给定数目个字节.如果没有给定size参数(默认值为-1)或size值为负,文件将被读取直至末尾. readline()方法读 ...
- python基础学习笔记——文件操作
文件操作 初始文件操作 使用Python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了 根据打开方式的不同能够执行的操作 ...
- python基础学习Day8 文件的基本操作
1.文件的基本操作初识 f = open('a.text', 'r', encoding='utf-8')data = f.read()print(data)f.close() 2.读 r r+b ...
- Python基础学习四 文件操作(二)
####读取文件#### with open('goods_info.txt', 'r', encoding='utf-8') as f: f.seek(0) # 注意指针位置 goods_info ...
- Python基础学习三 文件操作(一)
文件读写 r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[不可读: 不存在则创建:存在则只追加内容:] r+,[可读.可写:可追加,如果打开的文件不存 ...
- Python基础学习之文件(1)
1.文件对象 文件对象不仅可以用来访问普通的磁盘文件,还可以访问具有文件类型接口的其他对象;文件只是连续的字节序列. 2.文件内建函数(open()) 内建函数open()是打开文件的"钥匙 ...
随机推荐
- codeforces 1019B The hat 【交互题+二分搜索】
题目链接:戳这里 学习题解:戳这里
- C# 类(9) - 接口 Interface
Interface 接口 类似 抽象类,也不能被实例化...(前面说的静态类,加上抽象类,还有这个,都3个了)接口其实比 抽象类 更加抽象.接口的方法(这个方法还不能有实体代码,和抽象类的抽象方法差不 ...
- 高并发之Phaser、ReadWriteLock、StampedLock
本系列研究总结高并发下的几种同步锁的使用以及之间的区别,分别是:ReentrantLock.CountDownLatch.CyclicBarrier.Phaser.ReadWriteLock.Stam ...
- 解决: "E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) ..."
解决: "E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?& ...
- ORM框架对分表分库之分库和分表指定不同的字段
ORM框架分库分表已实现了 只分表(根据指定字段) 点我查看demo 只分库(根据指定字段) 点我查看demo 既分库又分表(根据相同的字段) 点我查看demo 上面几点之前我在博客中已经写了使用介绍 ...
- 如何使用 js 实现一个 debounce 函数
如何使用 js 实现一个 debounce 函数 原理 防抖: 是指在指定的单位时间内,如果重复触发了相同的事件,则取消上一次的事件,重新开始计时! 实现方式 "use strict&quo ...
- js ^ operator
js ^ operator 位运算 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwis ...
- JUnit5学习之二:Assumptions类
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 聊聊ASP.NET Core中的配置
作为软件开发人员,我们当然喜欢一些可配置选项,尤其是当它允许我们改变应用程序的行为而无需修改或编译我们的应用程序时.无论你是使用新的还是旧的.NET时,可能希望利用json文件的配置.在这篇文章中, ...
- Jupyter Notebook 暗色自定义主题
这款主题是在jupyter-dark-theme的基础上修改了字体大小和行高,以及显示工具栏.感谢原作者! 安装 下载custom.css文件并移动至~/.jupyter/custom/文件夹下,如果 ...