Python提供的文件操作相对于Java来说,确实简单方便许多。不仅操作简单,代码可读性也相对较高。然而,我们需要注意的不仅仅是文件操作的简单性,还有文件操作的各种模式。在Java中,我们并不经常使用像Python中那样的操作模式。

另外,我们还需要注意文件指针的移动。无论是Java还是Python,文件都可以看作是IO流,流到哪里就算是哪里。除非重新对文件进行操作,否则想要回到文件开头,只能通过移动指针来实现。因此,在进行文件操作时,我们需要谨慎考虑文件指针的位置。

基本语法和模式

首先,我们需要使用open()函数来打开文件,并指定文件名和打开模式。常用的打开模式有多种选项,对于我们有经验的来说,r、w、a基本都能猜到他们所代表的英文意思。

  • r:只读模式,从文件中读取数据(默认模式)。
  • w:写入模式,首先清空文件内容,然后写入数据。
  • a:追加模式,将数据写入文件末尾。
  • b:二进制模式,用于处理二进制数据,也就是图片和视频文件了。你可以将"b"理解为"binary"的缩写
  • t:文本模式(默认模式),用于处理文本文件。你可以将"t"理解为"text"的缩写
# 打开文件 也可以是file = open("filename.txt", "r")
file = open("example.txt", "rt") # 一次性读取文件内容
content = file.read()
print(content) # 关闭文件
file.close()

除了示例中使用的rt模式,还有其他常用的模式,就是r、w和b、t的字母组合了:

  • wt:以文本模式写入文件。如果文件不存在,则创建一个新文件;如果文件已存在,则清空文件内容。
  • rb:以二进制模式读取文件。
  • wb:以二进制模式写入文件。

我们上面的写法是最基础的,为了保证文件操作的正确性和资源的释放,我们需要手动关闭文件。在Java中,可以使用try-with-resource语法来自动关闭流,而在Python中,我们也可以使用with语句来实现类似的功能,自动关闭文件,如下所示:

with open("filename.txt", "r") as file:
content = file.read()
print(content)

当你在写入文件后,想要回到文件开头以便读取文件内容时,可以使用seek(0)将指针移动到文件的开头位置。以下是一个示例:

with open("file.txt", "a+") as file:
file.write("This is a new line.")
file.seek(0)
content = file.read()
print(content)

使用seek(0)将指针移动到文件的开头位置。最后,我们使用read()函数读取整个文件的内容,并将其打印出来。指令后面的+号可以表示以读写方式打开文件。

简单案例

使用with open()语句可以更简洁地管理文件的打开和关闭,下面是使用with open()语句进行文件交换、删除源文件和重命名临时文件的示例代码:

import os

# 源文件路径
source_file = "path/to/source_file.txt" # 临时文件路径
temp_file = "path/to/temp_file.txt" # 文件交换
with open(source_file, "rt") as file, open(temp_file, "wt") as temp:
content = file.read()
temp.write(content) # 删除源文件
os.remove(source_file) # 重命名临时文件为源文件
os.rename(temp_file, source_file)

这次我们第一次使用了import语句,这个语句的作用是导入包。通过导入包,我们可以直接使用写好的逻辑,而不需要自己去编写。Python之所以能够如此简洁,离不开各种强大的包的支持。实际上,文件交换部分的代码也可以利用包来实现,因为已经有其他人写好了相关的功能,就像我们需要实现列表功能时可以直接使用ArrayList一样。市面上已经有很多优秀的轮子可供使用,只需要直接拿来用,千万不要重复造轮子~~

总结

Python提供的文件操作相对于Java来说,更简单方便。不仅操作简单,代码可读性也更高。不过,我们还需要注意文件操作的各种模式和文件指针的移动。虽然文件操作只有几种方式,但我不会给出示例,避免浪费大家的时间和精力。

🔥🔥Java开发者的Python快速进修指南:文件操作的更多相关文章

  1. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  2. python 小兵(4)之文件操作 小问题

    1.光标不对就用seek 2.文件操作方面注意不要变修改变删除,会爆出文件正在运行不能操作 3.w模式下只有开始打开的时候会清空 4.文件操作的时候用as 后面的参数进行操作,不能用文件名进行操作 5 ...

  3. Python基础7:文件操作

    [ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...

  4. python函数基础 与文件操作

    函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...

  5. Python 第三天 文件操作(2)

    文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  fi ...

  6. python学习笔记4(文件操作)

    文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”)      直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...

  7. python学习笔记-(七)python基础--集合、文件操作&函数

    本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...

  8. Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数

    1.        集合 1.1      特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...

  9. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  10. python 函数初识和文件操作

    文件操作  打开文件:文件句柄 = open('文件路径', '模式')  打开文件的模式 w #以写的方式打开 (不可读,不存在则创建,存在则删除内容) a #以追加的模式打开(可读, 不存在则创建 ...

随机推荐

  1. 秋叶整合包如何安装Python包

    前几天写了一篇<手把手教你在本机安装Stable Diffusion秋叶整合包>的文章,有同学运行时遇到缺少Python Module的问题,帮助他处理了一下,今天把这个经验分享给大家,希 ...

  2. Gin+Xterm.js实现远程Kubernetes Pod(一)

    Xterm.js简介 xterm.js (https://xtermjs.org/)是一个开源的 JavaScript 库,它模拟了一个终端接口,可以在网页中嵌入一个完全功能的终端.这个库非常灵活,并 ...

  3. Programming abstractions in C阅读笔记:p107-p110

    <Programming Abstractions In C>学习第46天,p107-p110,3.1小节--"The concept of interface",总结 ...

  4. mybatis-plus+nacos配置中心和服务发现保姆级教程

    默认你已经看了我的Mybatis-Plus+Mysql的教程,现在有了一个简单的项目如下(之前的教程:  https://www.cnblogs.com/leafstar/p/17638741.htm ...

  5. C盘无法创建文件处理

    icacls c:\ /setintegritylevel M 打开终端执行上方命令,亲测可用

  6. pentaho(keetle)使用手册

    pentaho使用 先展示一下用途和效果 1. 环境准备 1.1 pentaho是什么? pentaho可读作"彭塔湖",原名keetle 在keetle被pentaho公司收购后 ...

  7. Vika and Her Friends

    Smiling & Weeping ----早知道思念那么浓烈,不分手就好了 题目链接:Problem - A - Codeforces 题目大意:有n个Vika的朋友在一个n*m的方格中去捉 ...

  8. List取指定元素

    例如: List<string> list = new List<string>(); list.Take(50).ToList();//取前50条 list.Skip(10) ...

  9. xxl-job初学转载,不断更新

    参考:https://blog.csdn.net/xhmico/article/details/122324950 官网与源码下载地址 官网:https://www.xuxueli.com/xxl-j ...

  10. 5-MySQL列定义

    1.列定义 说明:在MySQL中,列定义(Column Definition)是用于定义数据库表中每一列的结构的语句.它指定了列的名称.数据类型.长度.约束以及其他属性. 2.主键和自增 主键:PRI ...