Python 文件处理指南:打开、读取、写入、追加、创建和删除文件
文件处理是任何Web应用程序的重要部分。Python有多个用于创建、读取、更新和删除文件的函数。
文件处理
在Python中处理文件的关键函数是open()函数。open()函数接受两个参数:文件名和模式。
有四种不同的方法(模式)可以打开文件:
- "r" - 读取 - 默认值。打开一个文件以进行读取,如果文件不存在则报错。
- "a" - 追加 - 打开一个文件以进行追加,如果文件不存在则创建文件。
- "w" - 写入 - 打开一个文件以进行写入,如果文件不存在则创建文件。
- "x" - 创建 - 创建指定的文件,如果文件存在则返回错误。
此外,您可以指定文件是二进制模式还是文本模式:
- "t" - 文本 - 默认值。文本模式。
- "b" - 二进制 - 二进制模式(例如,图像)。
语法
要打开一个文件进行读取,只需指定文件的名称:
f = open("demofile.txt")
上述代码与以下代码等效:
f = open("demofile.txt", "rt")
因为"r"表示读取,"t"表示文本,它们是默认值,您不需要指定它们。
打开服务器上的文件
假设我们有以下文件,位于与Python相同的文件夹中:
demofile.txt
Hello! Welcome to demofile.txt
This file is for testing purposes.
Good Luck!
要打开该文件,使用内置的open()函数。
open()函数返回一个文件对象,该对象具有用于读取文件内容的read()方法:
f = open("demofile.txt", "r")
print(f.read())
如果文件位于不同的位置,您将不得不指定文件路径,如下所示:
f = open("D:\\myfiles\\welcome.txt", "r")
print(f.read())
只读取文件的一部分
默认情况下,read()方法返回整个文本,但您也可以指定要返回多少个字符:
f = open("demofile.txt", "r")
print(f.read(5))
读取行
您可以使用readline()方法返回一行:
f = open("demofile.txt", "r")
print(f.readline())
通过调用readline()两次,您可以读取前两行:
f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())
通过循环遍历文件的各行,您可以一行一行地读取整个文件:
f = open("demofile.txt", "r")
for x in f:
print(x)
关闭文件
最佳实践是在使用完文件后始终关闭它。
f = open("demofile.txt", "r")
print(f.readline())
f.close()
写入现有文件
要写入现有文件,您必须向open()函数添加一个参数:
- "a" - 追加 - 将追加到文件的末尾。
- "w" - 写入 - 将覆盖任何现有内容。
f = open("demofile2.txt", "a")
f.write("Now the file has more content!")
f.close()
要检查文件是否位于不同的位置,您将不得不指定文件路径,如下所示:
f = open("demofile3.txt", "w")
f.write("Woops! I have deleted the content!")
f.close()
注意:使用"w"方法将覆盖整个文件。
创建新文件
要在Python中创建新文件,请使用open()方法,使用以下参数之一:
- "x" - 创建 - 如果文件存在则返回错误。
- "a" - 追加 - 如果指定的文件不存在,将创建文件。
- "w" - 写入 - 如果指定的文件不存在,将创建文件。
f = open("myfile.txt", "x")
结果:创建了一个新的空文件!
f = open("myfile.txt", "w")
删除文件
要删除文件,您必须导入OS模块,并运行其os.remove()函数:
import os
os.remove("demofile.txt")
检查文件是否存在:
为了避免出现错误,您可能希望在尝试删除文件之前检查文件是否存在:
import os
if os.path.exists("demofile.txt"):
os.remove("demofile.txt")
else:
print("The file does not exist")
删除文件夹
要删除整个文件夹,请使用os.rmdir()方法:
import os
os.rmdir("myfolder")
最后
为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏和关注

Python 文件处理指南:打开、读取、写入、追加、创建和删除文件的更多相关文章
- 学习Linux二(创建、删除文件和文件夹命令)
转自:http://www.cnblogs.com/zf2011/archive/2011/05/17/2049155.html 今天学习了几个命令,是创建.删除文件和文件夹的,在linux里,文件 ...
- Node fs模块同步读取写入追加
JS文件中const fs = require("fs");console.log("开始进入文件读取.."); //同步的写入var data = fs.re ...
- SpringBoot基于EasyExcel解析Excel实现文件导出导入、读取写入
1. 简介 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题 ...
- python创建和删除文件
#!/usr/bin/python #-*-coding:utf-8-*- #指定编码格式,python默认unicode编码 import os directory = "./dir&qu ...
- 【转】python创建和删除文件
#!/usr/bin/python #-*-coding:utf-8-*- #指定编码格式,python默认unicode编码 import os directory = "./dir&qu ...
- win10用户文件夹重命名,启用administrator账户,删除文件夹时提示找不到该项目
这一切都源自楼主洁癖一般的强迫症. 楼主在重置win10后的安装过程中用microsoft账户登录的电脑,发现用户文件夹名称怪怪的,于是想重命名一下.楼主发现重命名用户文件夹并不能简单地用F2搞定,于 ...
- C# 运用FileInfo类创建、删除文件
通过FileInfo类,我们可以方便地创建出文件,并可以访问文件的属性同时还可以对文件进行打开文件.关闭文件.读写文件等基本的操作.下面的代码显示了如何创建一个文本文件并且去访问其创建时间.文件的绝对 ...
- ios 下创建,删除文件夹的方法
NSString *imageDir = [NSString stringWithFormat:@"%@/Caches/%@", NSHomeDirectory(), dirNam ...
- iOS创建、删除文件夹、获取沙盒路径
1.获取沙盒路径 // 获取沙盒路径 NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent: ...
- Ubuntu创建、删除文件与目录
"~"代表了用户主目录,即/home/帐户名.所以"/home/jv/下载"="~/下载" 创建文件和目录(文件夹) touch filen ...
随机推荐
- Flutter系列文章-Flutter进阶2
这一节我将再详细地为您介绍 Flutter 进阶主题,包括导航和路由.状态管理.异步处理.HTTP请求和Rest API,以及数据持久化.让我们逐个介绍这些主题. 1.导航和路由 在 Flutter ...
- Topic太多,RocketMQ炸了!
网上博客常说,kafka的topic数量过多会影响kafka,而RocketMQ不会受到topic数量影响. 但是,果真如此吗? 最近排查一个问题,发现RocketMQ稳定性同样受到topic数量影响 ...
- 文件上传的multipart/form-data属性,你理解了吗
form表单经常用于前端发送请求,比如:用户填写信息.选择数据.上传文件,对于不同的场景,上传数据的格式也会有些区别. action action 表示该请求的 url 地址,定义在form上,请求的 ...
- 部署安装maven和mvnd
前言 maven是常见的java构建工具,优点是稳定可靠,缺点是构建太慢,maven-mvnd是maven的强化版,致力于提高构建速度,默认情况下,mvnd 使用多核CPU并行构建. 常见的java构 ...
- 一行命令即可启动 Walrus丨入门教程
应用管理平台 Walrus 已正式开源,本文将介绍如何上手安装 Walrus 以及如何借助 Walrus 进行应用部署. 开源地址:https://github.com/seal-io/walrus ...
- Lazada商品详情(代码封装)以及应用
编辑切换为居中 Lazada平台的分析可以从以下几个方面入手: 1. 市场分析:对Lazada平台市场进行分析,及时了解市场趋势和变化,调整企业的经营策略.可以监测Lazada平台上商品的销售量. ...
- Prompt 指北:如何写好 Prompt,让 GPT 的回答更加精准
目录 1. 得亏 GPT 脾气好 2. 玩 GPT 得注意姿势 3. 指南指北指东指西 3.1 首先你得理解 GPT 是咋工作的 3.2 "Prompt 工程"走起 3.3 奇淫技 ...
- 2023-10-04:用go语言,现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号 给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges , 其中 edge
2023-10-04:用go语言,现有一棵无向.无根的树,树中有 n 个节点,按从 0 到 n - 1 编号 给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges , 其中 edge ...
- git 设置记住密码和清除密码
git 设置记住密码和清除密码 1. 永久记住密码 该命令会记住密码,执行一次 git pull 或 git push 等需要输入密码的命令,输入一次密码, 之后就都不必再输入了 git conf ...
- 教育法学第八章单元测试MOOC
第八章单元测试 返回 本次得分为:100.00/100.00, 本次测试的提交时间为:2020-09-06, 如果你认为本次测试成绩不理想,你可以选择 再做一次 . 1 单选(5分) 社团法人与财团法 ...