文件处理是任何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 文件处理指南:打开、读取、写入、追加、创建和删除文件的更多相关文章

  1. 学习Linux二(创建、删除文件和文件夹命令)

     转自:http://www.cnblogs.com/zf2011/archive/2011/05/17/2049155.html 今天学习了几个命令,是创建.删除文件和文件夹的,在linux里,文件 ...

  2. Node fs模块同步读取写入追加

    JS文件中const fs = require("fs");console.log("开始进入文件读取.."); //同步的写入var data = fs.re ...

  3. SpringBoot基于EasyExcel解析Excel实现文件导出导入、读取写入

    1. 简介   Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题 ...

  4. python创建和删除文件

    #!/usr/bin/python #-*-coding:utf-8-*- #指定编码格式,python默认unicode编码 import os directory = "./dir&qu ...

  5. 【转】python创建和删除文件

    #!/usr/bin/python #-*-coding:utf-8-*- #指定编码格式,python默认unicode编码 import os directory = "./dir&qu ...

  6. win10用户文件夹重命名,启用administrator账户,删除文件夹时提示找不到该项目

    这一切都源自楼主洁癖一般的强迫症. 楼主在重置win10后的安装过程中用microsoft账户登录的电脑,发现用户文件夹名称怪怪的,于是想重命名一下.楼主发现重命名用户文件夹并不能简单地用F2搞定,于 ...

  7. C# 运用FileInfo类创建、删除文件

    通过FileInfo类,我们可以方便地创建出文件,并可以访问文件的属性同时还可以对文件进行打开文件.关闭文件.读写文件等基本的操作.下面的代码显示了如何创建一个文本文件并且去访问其创建时间.文件的绝对 ...

  8. ios 下创建,删除文件夹的方法

    NSString *imageDir = [NSString stringWithFormat:@"%@/Caches/%@", NSHomeDirectory(), dirNam ...

  9. iOS创建、删除文件夹、获取沙盒路径

    1.获取沙盒路径 // 获取沙盒路径 NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent: ...

  10. Ubuntu创建、删除文件与目录

    "~"代表了用户主目录,即/home/帐户名.所以"/home/jv/下载"="~/下载" 创建文件和目录(文件夹) touch filen ...

随机推荐

  1. Centos7下创建Oracle用户

    Centos7下创建Oracle用户 Oracle中,一个用户其实就类似于一个数据库,本次就来创建一个新用户 登录 将系统用户切换到oracle用户下 su - oracle -- 启动sqlplus ...

  2. Unity UGUI的LayoutElement(布局元素)组件的介绍及使用

    Unity UGUI的LayoutElement(布局元素)组件的介绍及使用 1. 什么是LayoutElement组件? LayoutElement是Unity UGUI中的一个布局元素组件,用于控 ...

  3. js闭包的一些笔记

    闭包 闭包是一个可以访问外部作用域的内部函数,即使这个外部作用域已经执行结束 作用域 作用域决定这个变量的生命周期及其可见性.当我们创建一个函数,就会生成一个新的作用域. 通过var创建的变量只有函数 ...

  4. 2021-7-7 VUE动态样式

    Vue的动态样式实例1 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> & ...

  5. UE源码分析:Slate 类鼠标输入处理

    序言 UE4.25版本 本章看一下UE的 "类鼠标"输入处理(其实就是鼠标和触摸的输入,我也没找到专门的术语来代指,英文UE用的是PointerXXX),主要是按下.移动.抬起等相 ...

  6. shell命令-lsof

    前言 lsof是系统管理常用命令,其名指的是list open files,列出打开的文件,而在linux系统,一切皆文件. centos7安装:yum install -y lsof 获取网络信息 ...

  7. AVR汇编(三):寻址方式

    AVR汇编(三):寻址方式 AVR具有多种寻址方式,在介绍具体的汇编指令之前,有必要对它们做一定了解. 前面介绍过,AVR将内存空间分为多个部分:寄存器堆.I/O空间.数据空间.程序空间.这些空间支持 ...

  8. go语言环境要这样搭建才"省钱"

    go语言环境要这样搭建才省钱 目录 go语言环境要这样搭建才省钱 本篇概要 集成开发环境工具(ide) Goland或IntelliJ IDEA Visual Studio Code 其他集成开发环境 ...

  9. 11、Spring之基于注解的AOP

    11.1.环境搭建 创建名为spring_aop_annotation的新module,过程参考9.1节 11.1.1.配置打包方式和依赖 注意:AOP需要在IOC的基础上实现,因此需要导入IOC的依 ...

  10. qBittorrent如何运行脚本 BT实现自动改名并方便Jellyfin的搜刮器

    qBittorrent如何运行脚本 BT实现自动改名并方便Jellyfin的搜刮器 很多影视网站下载的视频名字大概是为了规避监测,命名非常奇葩,比如:z灼f流,y骨y等等.如果你使用了Jellyfin ...