首页 > 编程语言 >python文件操作、文件操作、读写文件、写模式

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

时间:2024-06-18 18:29:42浏览次数:20  
标签:文件 python root 操作 print path txt os

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

标签:文件,python,root,操作,print,path,txt,os
From: https://blog.csdn.net/2301_77161927/article/details/139745811

相关文章

  • Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等
    Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等点击项目浏览器右键点击选中,然后选择sql文件右键点击连接地址,选中【工具】,选中【创建新任务】填写信息,选中【执行SQL脚本】,然后【下一步】选中脚本文件点击确定选中数据库的连接地址,如果自动关联就无......
  • Win11+Miniconda3+python3.9安装pyspark+pytorch
    Win11+Miniconda3+python3.9安装pyspark+pytorch步骤1:安装Miniconda3,具体可以百度或者google步骤2:安装好Miniconda3之后,要创建虚拟环境,类似于虚拟机的样子,然后在虚拟环境安装各种python包已经装好了pytorch,具体步骤可以参考网上的一些教程,很多时候要综合多个教程,比如说先建立......
  • 解决 npm或pnpm : 无法加载文件
    解决npm或pnpm:无法加载文件C:\Users\hp\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本VSCode写入pnpmdev等命令的时候PSD:\GuangFu\pv_mes_web>pnpmdevpnpm:无法加载文件C:\Users\Eleven_tu\AppData\Roaming\npm\pnpm.ps1。未对文件C:\Users\Eleven_t......
  • 链表相对于数组的优势,以及栈和队列的基本操作
    链表(LinkedList)和数组(Array)是两种常见的数据结构,它们各自在不同的场景下有其优势和劣势。链表相对于数组的优势主要体现在以下几个方面:动态大小:链表在插入和删除元素时,不需要像数组那样预先分配固定大小的内存空间。链表中的节点可以动态地分配和释放,这使得链表在处理动......
  • 文件处理
    request.get("/operate-benchmarking/benchmarking/getReportTb2",{params:{reportName:reportName,},//responseType:"blob",}).then((res)=>{console.log(res.data);/......
  • python 注册nacos 进行接口规范定义
    背景:一般场景python服务经常作为java下游的算法服务或者数据处理服务但是使用http去调用比较不灵活,通过注册到nacos上进行微服务调用才是比较爽的1.定义feginapi的接口定义java端定义接口请求和响应主要关注CommonResult结构和python要一直,不然序列号是有问题的Co......
  • Python编程基础:f-字符串格式
    本文探讨使用Pythonf-字符串格式,也称为“格式化字符串文字”。f-string是格式化字符串的一种很好且简单的方法,适用于Pythonv3.6+。如果你仍然使用.format()方法,必须了解f-字符串。使用字符串格式的优势之一是能够“插入”并格式化字符串数据中的变量。Python字符串format()方......
  • python调用智能合约代码,BadFunctionCallOutput 怎么解决
    目录桌面应用使用QT5开发的,可以看看我的QT5文章BadFunctionCallOutput 怎么解决我的原因是智能合约地址填写错误python智能合约基础应用如何使用remix编写solidity智能合约并部署上链在哪进行合约部署,合约部署步骤Remix怎么复制abi和address​编辑这个ABI对应最简......
  • 文件内容比较
    造冰箱的大熊猫@cnblogs2024/6/181、文本文件推荐使用Meld软件Meld为开源软件,支持Linux和Windows,以并列窗口的形式显示两个或三个文件的内容差异,能够选择文件编码格式(比如GB2312或UTF-8)。非常好用,个人强烈推荐  2、二进制文件1)Linux下可以使用命令行工具diff,参见之前写......
  • 【python】pandas:DataFrame详解
    DataFrame是Pandas库中的一个核心数据结构,用于处理和分析表格型数据。以下是关于DataFrame的详细介绍:1.定义DataFrame是一个二维的表格型数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值等)。DataFrame可以被视为一个电子表格或SQL表,或是由多个Seri......