文件处理

在Python中处理文件的关键函数是open()函数。有四种不同的方法(模式)来打开一个文件

"r" - 读取 - 默认值。打开一个文件进行读取,如果文件不存在则出错。

"a" - Append - 打开一个文件进行追加,如果文件不存在则创建该文件

"w" - 写 - 打开一个文件进行写入,如果不存在则创建文件

"x" - 创建 - 创建指定的文件,如果文件存在则返回错误。

此外,你还可以指定文件应以二进制或文本模式处理。

"t" - 文本 - 默认值。文本模式

"b" - 二进制 - 二进制模式(如图像)。

要打开一个文件进行阅读,只需指定文件的名称即可

f = open("demofile.txt")

上面的代码与

f = open("demofile.txt", "rt")

因为 "r "代表读取,"t "代表文本,是默认值,你不需要指定它们。

注意:确保该文件存在,否则你会得到一个错误。

读取文件

open()函数返回一个文件对象,它有一个read()方法用于读取文件的内容

f = open("demofile.txt", "r")
print(f.read())

如果文件位于一个不同的位置,你将不得不指定文件路径,像这样

f = open("D:\\myfiles\welcome.txt", "r")
print(f.read())

只读文件的部分内容

f = open("demofile.txt", "r")
print(f.read(5))

读取行

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() #open and read the file after the appending:
f = open("demofile2.txt", "r")
print(f.read())
f = open("demofile3.txt", "w")
f.write("Woops! I have deleted the content!")
f.close() #open and read the file after the appending:
f = open("demofile3.txt", "r")
print(f.read())

注意:"w "方法将覆盖整个文件。

要在Python中创建一个新的文件,使用open()方法,并带有以下参数之一

"x" - 创建 - 将创建一个文件,如果该文件存在则返回错误

"a" - 附加 - 如果指定的文件不存在将创建一个文件

"w" - 写 - 如果指定的文件不存在,将创建一个文件

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")

注意:你只能删除空文件夹。

您的关注,是我的无限动力!

公众号 @生活处处有BUG

Python入门系列(十)一篇学会python文件处理的更多相关文章

  1. 孤荷凌寒自学python第八十天开始写Python的第一个爬虫10

    孤荷凌寒自学python第八十天开始写Python的第一个爬虫10 (完整学习过程屏幕记录视频地址在文末) 原计划今天应当可以解决读取所有页的目录并转而取出所有新闻的功能,不过由于学习时间不够,只是进 ...

  2. 孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9并使用pydocx模块将结果写入word文档

    孤荷凌寒自学python第七十九天开始写Python的第一个爬虫9 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 到今天终于完成了对docx模块针对 ...

  3. 孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6

    孤荷凌寒自学python第七十六天开始写Python的第一个爬虫6 (完整学习过程屏幕记录视频地址在文末) 今天在上一天的基础上继续完成对我的第一个代码程序的书写. 不过由于对python-docx模 ...

  4. 孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务

    孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第五天.今天的感觉是,mongoDB数 ...

  5. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

  6. python入门(4)第一个python程序

    python入门(4)第一个python程序 在交互式环境的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果.现在,试试输入100+200,看看计算结果是不是300: ...

  7. Python(四)基础篇之「文件对象&错误处理」

    [笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE    编程之魅  Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...

  8. Python入门系列【附】进阶教程

    如题,本篇将讲解Python提升之路:Python作为语法简单易学的语言,入门容易精通却很难,这是共识,那么为什么会有这样的共识?精通Python的难度在哪里? Python拥有简单.形象.直观的语法 ...

  9. Python之路,第一篇:Python入门与基础

    第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开 ...

  10. 2018最新Python小白入门教程,30天学会Python

    随着Python的技术的流行,Python在为人们带来工作与生活上带来了很多的便捷,因为Python简单,学起来快,也是不少新手程序员入门的首选语言.作为一名Python爱好者,我也想跟大家分享分享我 ...

随机推荐

  1. Java基础-JVM篇

    1.1 .线程 ​ 这里所说的线程指程序执行过程中的一个线程实体.JVM 允许一个应用并发执行多个线程.Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系.当线程本地存储. ...

  2. SAP 时区转换

    DATA:l_tzone TYPE tzonref-tzone.   "TIME ZONE    DATA:l_timesp TYPE tzonref-tstamps."TIME  ...

  3. python爬虫之protobuf协议介绍

    前言 在你学习爬虫的知识过程中是否遇到下面的类型.如果有兴趣学习一下或者了解相关知识的,且不嫌在下才疏学浅,可以参考一下.欢迎各位网友的指正. 首先叙述一下问题的会出现的式样. 你可能会在请求参数中看 ...

  4. openGauss内核:SQL解析过程分析

    摘要:在传统数据库中SQL引擎一般指对用户输入的SQL语句进行解析.优化的软件模块.SQL的解析过程主要分为:词法.语法和语义分析. 本文分享自华为云社区< openGauss内核分析(三):S ...

  5. 【前端面试】(三)JavaScript相等(==)和全等(===)运算符的区别

    视频链接: JavaScript相等()和全等(=)运算符的区别 - Web前端工程师面试题讲解 参考链接: JavaScript == 与 === 区别 区别 对于string.number 等基础 ...

  6. application.yml 常用基本配置

    前言 在平时的项目开发中,自己对application.yml的配置的写法较为熟悉,现在自己就application.yml常用的配置进行总结如下: 1.Tomcat 配置 server: #设置请求 ...

  7. IP寻址与规划

    一.IP寻址和子网划分 IP地址的主机部分可被分为三种地址:网络地址.主机地址和定向广播地址. 网络地址是网络号中的第一个地址.它用来将网络内的其他所有网段唯一标识为一个网段或广播域.定向广播地址是网 ...

  8. 最小生成树 链式前向星 Prim&Kruskal

    Prim: Prim的思想是将任意节点作为根,再找出与之相邻的所有边(用一遍循环即可),再将新节点更新并以此节点作为根继续搜,维护一个数组:dis,作用为已用点到未用点的最短距离. 证明:Prim算法 ...

  9. JDBC(Java Database Connectivity)编写步骤

    JDBC是代表一组公共的接口,是Java连接数据库技术: JDBC中的这些公共接口和DBMS数据库厂商提供的实现类(驱动jar),是为了实现Java代码可以连接DBMS,并且操作它里面的数据而声名的. ...

  10. Pytorch分布式训练

    用单机单卡训练模型的时代已经过去,单机多卡已经成为主流配置.如何最大化发挥多卡的作用呢?本文介绍Pytorch中的DistributedDataParallel方法. 1. DataParallel ...