文章目录

  • 1. 文件的读写原理:
  • 2. 常用的文件打开模式
  • 3. 文件对象的常用方法
  • 4. 目录的相关操作

1. 文件的读写原理:

文件的读写称为I/O操作。

操作原理:

.py文件是用解释器去运行,调用OS操作系统的资源,去操作磁盘上的文件。

操作流程: 在去操作一个文件的文件的时候,首先打开或者创建一个文件,进行读或者写。
读: 从文件拿到内存当中来
写:把内存的文件放入文件中

最后进行关闭资源。

内置函数: open() 可以创建或者打开一个文件

语法规则:
file=open(filename [mode,encoding]

打开模式默认为只读
默认文本中的字符编码格式为gbk

# 作者:互联网老辛
# 开发时间:2021/4/5/0005 8:23file=open('a.txt',encoding='utf-8')
print(file.readlines())
file.close()

readlines这样会把读取的数据写入一个列表中。

2. 常用的文件打开模式

文件操作:
os.mknod(“test.txt”) 创建空文件
fp = open(“test.txt”,w) 直接打开一个文件,如果文件不存在则创建文件

关于open 模式:

参数 含义
r 以只读的模式打开文件,文件的指针会放到文件的开头
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
b 以二进制方式打开文件,不能单独使用,需要和其他模式共用,比如rb
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )

案例1:

# 作者:互联网老辛
# 开发时间:2021/4/5/0005 8:23file=open('b.txt','w')
file.write("python")
file.close()

这样会新建一个b.txt,如果原来就已经有了,就替换。

二进制文件: 把数据用字节的方式进行存储,无法用记事本打开。比如mp3.图片

3. 文件对象的常用方法

方法 含义
fp.read([size]) #size为读取的长度,以byte为单位
fp.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分
fp.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符
fp.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。
fp.close() #关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError
fp.flush() #把缓冲区的内容写入硬盘
fp.fileno() #返回一个长整型的”文件标签“
fp.isatty() #文件是否是一个终端设备文件(unix系统中的)
fp.tell() #返回文件操作标记的当前位置,以文件的开头为原点
fp.next() #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
fp.seek(offset[,whence]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
fp.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

4. 目录的相关操作

目录操作:

  • os.mkdir(“file”) 创建目录
  • 复制文件:
    shutil.copyfile(“oldfile”,“newfile”) oldfile和newfile都只能是文件
    shutil.copy(“oldfile”,“newfile”) oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
  • 复制文件夹:
    shutil.copytree(“olddir”,“newdir”) olddir和newdir都只能是目录,且newdir必须不存在
  • 重命名文件(目录)
    os.rename(“oldname”,“newname”) 文件或目录都是使用这条命令
  • 移动文件(目录)
    shutil.move(“oldpos”,“newpos”)
  • 删除文件
    os.remove(“file”)
  • 删除目录
    os.rmdir(“dir”)只能删除空目录
    shutil.rmtree(“dir”) 空目录、有内容的目录都可以删
  • 转换目录
    os.chdir(“path”) 换路径

案例:

# 作者:互联网老辛
# 开发时间:2021/4/5/0005 8:23import os
#os.system('notepad.exe')  #打开记事本
#os.system('calc.exe')  #打开计算器
##直接调用可执行文件#os.startfile('D:\\Software\\WeChat\\WeChat.exe')  #打开微信
print(os.getcwd())  #查看当前目录
print(os.listdir('../vippython'))  #查看vippython中包含的目录
os.mkdir('d_file') #创建文件夹

【Python从零到壹】Python文件的操作详解相关推荐

  1. pythondifflib详解_用python标准库difflib比较两份文件的异同详解

    [需求背景] 有时候我们要对比两份配置文件是不是一样,或者比较两个文本是否异样,可以使用linux命令行工具diff a_file b_file,但是输出的结果读起来不是很友好.这时候使用python ...

  2. Python 文件 IO 操作详解

    Python 文件 IO 操作详解 1.文件 IO 常用操作 2.文件打开操作 2.1 打开命令 2.2 命令参数 2.2.1 路径 2.2.2 mode 2.2.3 buffering 缓冲区 2. ...

  3. java io类库,Java利用io类库对各种文件的操作详解

    Java中文网 - Java利用io类库对各种文件的操作详解 java中提供了io类库,可以轻松的用java实现对文件的各种操作.下面就来说一下如何用java来实现这些操作. 新建目录 //Strin ...

  4. java对文件的操作详解_Java 对 Properties 文件的操作详解及简单实例

    Java 对 Properties 文件的操作详解及简单实例 发布于 2020-8-7| 复制链接 摘记: Java 对 Properties 文件的操作简介在 Java 中,我们常用 java.ut ...

  5. python列转行函数_Python pandas 列转行操作详解(类似hive中explode方法)

    最近在工作上用到Python的pandas库来处理excel文件,遇到列转行的问题.找了一番资料后成功了,记录一下. 1. 如果需要爆炸的只有一列: df=pd.DataFrame({'A':[1,2 ...

  6. Python基础必掌握的文件读写操作详解

    读取和写入文件等操作是 Python 可以完成的最常见任务之一.无论是写入简单的文本文件,读取复杂的服务器日志,甚至分析原始字节数据,进行相关的处理操作,最终所有这些情况都需要读取或写入文件. 整套学 ...

  7. Python基础必掌握的Traceback回溯机制操作详解

    当代码中引发异常时,Python 会打印回溯.Python 回溯具有丰富的信息,可以诊断和修复代码中引发异常的原因. 这个也就是经常说的报错错在哪里了. 整套学习自学教程中应用的数据都是<三國志 ...

  8. C语言文件读写操作详解

    C语言/C++中文帮助文档免积分下载(点击跳转) 当文件按指定的工作方式打开以后,就可以执行对文件的读和写.下面按文件的性质分类进行操作.针对文本文件和二进制文件的不同性质,对文本文件来说,可按字符读 ...

  9. IOS 文件读写操作详解及简单实例

    iPhone 文件读写操作 1,写文件操作 - (IBAction)btnWrite:(id)sender {//创建文件管理器NSFileManager *fileManager = [NSFile ...

最新文章

  1. php用Simple Excel导出xls
  2. SecureCRT 中 python 命令行使用退格键(backspace)出现 ^H 解决办法
  3. 恢复Ext3下被删除的文件
  4. 误用.Net Redis客户端工具CSRedisCore,自己挖坑自己填
  5. 提高python执行效率_提升Python程序运行效率的6个方法
  6. Algorithm -- 全排列
  7. 在算法横行的时代,仍需要人类把关
  8. java char的意思,java – @(#)字符的含义
  9. MongoDB实战经验分享
  10. Form窗体点击关闭按钮并未关闭进程的解决方法
  11. pythonATM,购物车项目实战1,项目说明
  12. 2022百度之星程序设计大赛 - 初赛 - 第二场 1001 和
  13. 怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串
  14. android入门小Demo
  15. 操作系统——进程管理思维导图(一)
  16. SSM实现的影院订票系统-JAVA【数据库设计、源码、开题报告】
  17. CSP在线考试环境 | OBS录屏软件下载安装和设置教程
  18. C#中Int64和UInt64之间的区别
  19. 数据结构习题集之魔王语言解释
  20. Keras神经网络实现泰坦尼克号旅客生存预测

热门文章

  1. 高德地图鼠标划线显示距离并生成坐标点数据
  2. 2021中国AI产业10大趋势,一分钟看明白 | WAIC2021
  3. 如何优化传统项目,提高web应用的吞吐量
  4. 智能电饭煲自动洗米手机操控一键搞定
  5. 手机QQ浏览器的HTML管理器,手机qq浏览器中文件管理器有哪些功能
  6. java entropy_java面试
  7. 微信小程序开发基础(02模板与配置)
  8. 开源数据可视化 datart-自定义Jquery图表插件教程
  9. 数据库学习7 — 嵌套查询
  10. Docker基础入门详解