python文件操作、文件操作、读写文件、写模式

news2024/11/26 10:35:39

with读取文件数据内容

with open(filepath,mode,encoding) as file:
    #具体操作,例如:
    print(file.read())
    #查看文件所有的内容。    
with:Python中的一个上下文管理器,用于简化资源的管理和释放。它可以用于任意需要进行资源分配和释放的情境,比如文件操作、数据库连接等。
open:open()内置函数用于打开文件,并返回一个文件对象。它接受两个参数:文件名和打开模式。
filepath:这是你要打开的文件的路径。
mode:打开模式(mode),用于指定文件的操作模式。

encoding:

这是用于读取或写入文件的字符编码。常见的编码有:

'utf-8':UTF-8编码,广泛使用的跨平台编码。

'ascii':ASCII编码,仅支持英文字符的编码方式。

'latin-1':Latin-1编码,支持ISO-8859-1字符集的编码方式。

'gbk':GBK编码,用于中文字符的编码方式。

'utf-16':UTF-16编码,用于较大字符集的编码方式。

如果不指定encoding参数,默认使用系统的默认编码方式。一般情况下,推荐使用UTF-8编码,因为它具有较广的支持和兼容性。

as:

as关键字用于给导入的模块起一个别名。

as关键字的作用是提供更简洁、易读的方式来使用变量或模块,并且可以避免命名冲突。

mode操作模式

语        法  说明        
r:(只读模式)只读模式。默认模式。适用于读取文件。
rb:(只读模式)读取二进制数据,例如图像、音频等文件。其中r表示只读操作,b表示以二进制格式打开文件。
w:(写入模式)写入模式。覆盖写入文本内容。如果文件不存在,则会创建一个新文件。
wb:(写入模式)覆盖写入二进制数据内容。如果文件不存在,则会创建一个新文件。
a:(写入模式)追加模式。在文件末尾追加内容。如果文件不存在,则会创建一个新文件。
x:独占创建模式。如果文件已存在,则会引发FileExistsError异常。
b:二进制模式。用于读取或写入二进制文件。
t:文本模式。默认模式,用于读取或写入文本文件。

+:

更新模式。打开文件用于读写。可以与其他模式组合使用,如'r+''w+''a+'

读语法

语法说明
read()

一次性读取整个文件的内容.

readline()

每次读取一行, 包括行尾的换行符 \ n, 当读取到文件结尾时将返回一个空字符串.

readlines()

一次性读取文件的所有行,并将每行内容作为一个字符串元素存放在列表.

写语法

语法说明
write(date)写入的数据内容,data必须是字符串string
读案例 
with open("csdn.py","r") as file:
    print(file.read())
#读取csdn.py文件中全部的内容。
追加写入案例
with open("jingyu","a") as file:
    file.write("Welcome to csdn jingyu飞鸟 Blog\n")
#向jingyu文件中追加写入内容。

\n是换行,如果没有\n的话情况就是这样的。 

 

覆盖写入案例
with open("jingyu","w") as file:
    file.write("Wait for you, hold my hand lightly.\n")
复制文本文件内容
with open("/jingyu/one.txt","r") as o,open("/jingyu/two.txt","r") as t:
    o.write(t.read())
复制二进制文件
with open("/jingyu/jingyu.png","rb") as o, open("/jingyu/jingyutwo.png","wb") as t:
    o.write(w.read())

文件及文件夹操作

序号

命令

说明

1

os.getcwd()

获取当前目录地址

2

os.chdir(path)

切换目录

3

os.path.exists(filename/path)

判断文件或文件夹是否存在

4

os.path.basename(path)

获取文件名

5

os.path.dirname(path)

获取路径

6

os.path.split(path)

获取路径的目录和文件名

7

os.path.splitext(path)

分离扩展名

8

os.path.getsize(path)

获取文件大小

9

os.stat(path)

获取文件属性

10

os.mknod(filename)

创建文件

11

os.mkdir(path)

创建文件夹

12

os.makedirs(path)

创建多级文件夹

13

shutil.copyfile(filepath,filepath)

复制文件

14

shutil.copytree(path,path)

复制文件夹

15

shutil.move(filepath,path)

移动文件

16

os.listdir()

查看目录列表

17

os.remove(filepath)

删除文件

18

os.rmdir(path)

删除空文件夹(空)

19

os.removedirs(path)

删除多级文件夹(空)

20

shutil.rmtree(path)

删除单/多级文件夹(非空)

21

os.path.isfile(filepath)

是否为文件

22

os.path.isdir(path)

是否为目录

案例:

 

import os

# 获取当前目录地址
print(os.getcwd())

# 切换目录
os.chdir("/root/temp")
print(os.getcwd())

# 创建文件
if not os.path.exists("/root/temp/demo01.txt"):
    os.mknod("demo01.txt")
    
# 获取文件名
print(os.path.basename("/root/temp/demo01.txt"))

# 获取路径
print(os.path.dirname("/root/temp/demo01.txt"))

# 获取路径的目录名和文件名
print(os.path.split("/root/temp/demo01.txt"))

# 分离扩展名
print(os.path.splitext("/root/temp/demo01.txt"))

# 获取文件的大小
print(os.path.getsize("/root/temp/demo01.txt"))

# 获取文件的属性
_file_detail = os.stat("/root/temp/demo01.txt")
print(os.stat("/root/temp/demo01.txt"))

# 获取文件大小
print(_file_detail.st_size)

# 获取文件创建时间
print(_file_detail.st_ctime)

# 获取文件修改时间
print(_file_detail.st_mtime)

# 获取文件访问时间
print(_file_detail.st_atime)

# 创建文件夹
if not os.path.exists("/root/temp"):
    os.mkdir("/root/temp")
    
# 创建多级文件夹
if not os.path.exists("/root/my/demo"):
    os.makedirs("/root/my/demo")
    
# 查看目录"列表
os.chdir("/root")
print(os.listdir())

# 创建文件
if not os.path.exists("/root/my/demo/test01.txt"):
    os.chdir("/root/my/demo")
    os.mknod("test01.txt")
    
# 写入数据
_file = open("/root/my/demo/test01.txt", "w",
             encoding="UTF-8")
_file.write("i like python....")
_file.close()

# 删除一个指定的空文件夹
os.rmdir("/root/my")
os.rmdir("/root/rm")

# 删除一个指定的多级目录
os.removedirs("/root/my")  # OSError: [Errno 39]
os.removedirs("/root/1/2")
# 删除目录(非空也可)

import shutil

shutil.rmtree("/root/my")
print(os.path.isfile("/root/data/123.png"))
print(os.path.isdir("/root/data"))
print(os.path.isfile("/root/data"))
print(os.path.isdir("/root/data/a.txt"))

# 复制文件
shutil.copyfile("/root/data/hello.txt",
                "/root/data/hellobf1.txt")
                
# 复制文件夹
shutil.copytree("/root/data", "/root/mytest")

# 移动文件
shutil.move("/root/data/123.png",
            "/root/files/temp")
            
# 删除文件
os.remove("/root/files/temp/123.png")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1832623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当OpenHarmony遇上OpenEuler

1、 安装openEuler 虚拟机、物理机器当然都可以安装。虚拟机又可以使用WSL、或者VMWare、VirtualBox虚拟机软件,如果需要安装最新版本,建议使用后者。当前WSL只支持OpenEuler 20.03。 1.1 WSL openEuler WSL的安装都是程序员的必备技能了,…

牛客热题:最长回文子串

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:最长回文子串题目链接方法一&am…

26 岁的“天才少年”,带队面壁打通高效大模型之路

每一轮技术浪潮出现时,冲在最前面的都是朝气蓬勃的年轻人。 当大模型代表的人工智能浪潮席卷全球,作为移动互联网“原住民”的年轻开发者,可以说是最活跃的群体。他们的脸庞还有些稚嫩,但在技术和方向上有着自己的想法&#xff0…

微信小程序添加服务类目|《非经营性互联网信息服务备案核准》怎么获取

根据客服反馈,《非经营性互联网信息服务备案核准》在工业和信息化部政务服务平台网站查询,查询结果的截图就是《非经营性互联网信息服务备案核准》。 工业和信息化部政务服务平台 《非经营性互联网信息服务备案核准》: 与客服聊天的截图&a…

JavaEE、SSM基础框架、JavaWeb、MVC(认识)

目录 一、引言 (0)简要介绍 (1)主要涉及的学习内容 (2)学习的必要性 (3)适用学习的人群(最好有这个部分的知识基础) (4)这个基础…

如何用多线程执行 unittest 测试用例实现方案

前言 使用python做过自动化测试的小伙伴,想必都知道unittest和pytest这两个单元测试框架,其中unittest是python的官方库,功能相对于pytest来要逊色不少,但是uniitest使用上手简单,也受到的很多的小伙伴喜爱。一直以来都…

HarmoneyOS星河版 安装和启动

一、下载和安装DevEco Studio 官网链接:OpenAtom OpenHarmony 1.1 找到对应的操作系统进行下载 创建安装Harmony的文件夹: 1.2 下载后进行安装 1.3 分别安装Node、Ohpm、SDK 分别安装Node、Ohpm和SDK 二、.创建一个新项目并运行 2.1 选择[OpenHarmon…

【YOLOv8改进[注意力]】在YOLOv8中添加ECA高效通道注意力(2020.4)的实践 + 含全部代码和详细修改方式 + 手撕结构图

本文将进行在YOLOv8中添加ECA高效通道注意力的实践,助力YOLOv8目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 ECA 二 在YOLOv8中添加ECA注意力

基于SpringBoot+VueBBS论坛系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还…

XSS学习(绕过)

学习平台&#xff1a;xss.tesla-space.com XSS学习&#xff08;绕过&#xff09; level1level2level4level5level6level7level8level9level10level11level12 level1 应该没有过滤 https://xss.tesla-space.com/level1.php?name<script>alert(1);</script> leve…

代码解读 | Hybrid Transformers for Music Source Separation[07]

一、背景 0、Hybrid Transformer 论文解读 1、代码复现|Demucs Music Source Separation_demucs架构原理-CSDN博客 2、Hybrid Transformer 各个模块对应的代码具体在工程的哪个地方 3、Hybrid Transformer 各个模块的底层到底是个啥&#xff08;初步感受&#xff09;&#xff1…

vivado PIN

描述 引脚是基元或层次单元上的逻辑连接点。引脚允许 要抽象掉单元格的内容&#xff0c;并简化逻辑以便于使用。引脚可以 是标量的&#xff0c;包含单个连接&#xff0c;或者可以定义为对多个进行分组的总线引脚 信号在一起。 相关对象 引脚连接到一个单元&#xff0c;并且可以…

服务器----阿里云服务器重启或关机,远程连接进不去,个人博客无法打开

问题描述 在使用阿里云免费的新加坡服务器时&#xff0c;发现重启或者是关机在开服务器后&#xff0c;就会出现远程连接不上、个人博客访问不了等问题 解决方法 进入救援模式连接主机&#xff0c;用户名是root&#xff0c;密码是自己设置的 点击访问博客查看更多内容

相约北京“信通院数据智能大会”

推动企业数智化转型发展&#xff0c;凝聚产业共识&#xff0c;引领行业发展方向&#xff0c;摩斯将参与信通院首届“数据智能大会”&#xff08;6月19-20日&#xff0c;北京&#xff09;。 本次大会设置多个主题论坛&#xff0c;将发布多项研究成果&#xff0c;分享产业最新实…

MDK 代码烧录到RAM区运行

MDK 代码烧录到RAM区运行 环境配置设置分散加载文件启动文件修改设置外部调试器烧录 建立函数入口半主机问题导致BKPT 0xAB 有一个需求&#xff0c;除了IAR以及GCC的版本工程还需要MDK版本&#xff0c;为了实现最小的工程环境&#xff0c;flash烧录算法也没有&#xff0c;这时需…

三分钟搞懂AI Agent!

0 前言 无需为不同任务使用单独软件使用日常语言来命令你的设备“代理”是人工智能的高级形式未来五年将成为现实人人都有的私人助理Agent应用在干行百业之中(医疗、教育、娱乐....) 1 Agents 是什么&#xff1f; Al Agents是基于LLM的能够自主理解、自主规划决策、执行复杂任…

复旦发布开源版本的EMO,只需输入一段音频和一张照片就可以让人物开始说话。

之前和大家介绍过阿里的EMO&#xff0c;用户只需要提供一张照片和一段任意音频文件&#xff0c;EMO即可生成会说话唱歌的AI视频。最长时间可达1分30秒左右。感兴趣的小伙伴可以点击下面链接阅读。 近日&#xff0c;复旦发布了一个开源版本的 EMO。 通过输入音频让面部照片开始…

示例:WPF中绑定枚举到ComboBox的方式

一、目的&#xff1a;在开发过程中&#xff0c;经常会需要把枚举绑定到ComboxBox下拉列表中&#xff0c;其实方法有很多&#xff0c;这里面通过MarkupExtension扩展GetEnumSourceExtension去绑定到列表 二、实现 定义GetEnumSourceExtension类 public class GetEnumSourceExte…

前端菜鸡流水账日记 -- git管理工具(多版本)

哈喽哇&#xff0c;我又又又来了&#xff0c;其实之前就挺想进行一篇关于git管理工具的分享的&#xff0c;但是一直都没有来的及&#xff0c;直到今天&#xff0c;在学习的时候&#xff0c;&#xff0c;一个朋友新发现了一个vscode中的小插件&#xff0c;所以我就决定一起来分享…

DPDK环境配置

DPDK环境配置 DPDK&#xff08;Data Plane Development Kit&#xff09;是一个开源的软件框架&#xff0c;最初由Intel开发&#xff0c;旨在提升数据包处理性能&#xff0c;尤其是在Intel架构的处理器上。它允许开发者在用户空间&#xff08;user space&#xff09;而不是传统…