首页 > 其他分享 >第九章 文件与文件夹操作

第九章 文件与文件夹操作

时间:2024-03-01 15:46:20浏览次数:22  
标签:返回 文件 第九章 文件夹 fp path open

第九章 文件与文件夹操作

一、文件的概念与分类

1、文本文件:

.log,txt,word,可以用记事本打开的文件

2、二进制文件:

数据库文件,图像文件,office文档等 ,不能用记事本打开的文件。需用特定软件进行增删改查。

二、文件操作基本知识

1、open()函数

open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=Node)

文件打开模式

模式 说明
r 读模式,默认
w 写模式,文件存在,清空原来内容;文件不存在,创建新文件
x 写模式,创建新文件,文件存在抛异常
a 追加模式,不覆盖原来内容
b 二进制模式(与r,w,x,a组合使用),使用时不指定encoding参数
t 文本模式,默认可省
+ 读,写模式

2、文件对象常用方法:

使用open()打开返回一个文件对象,通过该文件可以对文件进行读写操作。入选

方法 功能说明
close() 把缓冲区的内容写入文件,同时关闭文件,释放文件对象
read([size]) 文本文件读取范围size个文本,二进制文件读取返回size个字节,缺省返回所有内容
readline() 读取并返回一行内容
readlines() 返回包含文本文件中每行内容的列表
write(s) 把s写进内容
writelines(s) 把列表s的所有内容写入文本文件

3、上下文管理语句with

保证文件正常打开关闭

with open(filename,mode,encoding) as fp:

	#文件读写操作
s='regjhrjeg 是乱码吗'
with open('sample.txt','w',encoding='utf8') as fp
	fp.write(s)
with open('sample.txt',encoding='utf8') as fp
	print(fp.read())    

三、JSON文件操作

json轻量级的数据交换格式,相关方法如下:

方法 功能说明
dumps() 把对象序列化为字符串
loads() 把json格式的字符串还原为Python对象
dump() 把数据序列化并直接写入文件
load() 读取json格式文件并直接还原为Python对象

四、CSV文件操作

import csv
fn='data.csv'
#newline=''不插入空行
with open(fn,'w',newline='') as fp:
	wr=csv.writer(fp)
	wr.writerow('日期','销售额')

五、经典文件标准库

1.os模块

函数 说明
chdir(path) 把path设置当前工作文件夹
getcwd() 返回当前工资目录
listdir(path) 返回path路径下文件和子文件夹列表
mkdir(path) 创建文件夹,存在时报错
rmdir(path) 删除指定文件夹,要求改文件夹不能有文件或者子文件夹
remove(path) 删除指定文件
rename(src,dsc) 重命名
startfile(filepath[,operation]) 使用关联的应用程序打开指定文件或者启动指定应用程序

2、os.path模块

方法 说明
abspath(path) 返回绝对路径
basename(path)
dirname(p) 返回给定路径的文件夹部分
exists(path) 判断是否存在
getatime(filename) 返回文件最后一次访问时间
getctime(filename) 返回文件创建时间
getmtime(filename) 返回文件最后一次修改时间
getsize(filename) 返回文件大小
isdir(path) 是否为文件夹
isfile(path) 是否为文件
join(path,*paths) 连接多个path
split(path) 以\分隔路径,并返回元组
splitext(path) 分割文件扩展名,返回元组
splitdrive(path) 分隔驱动器名称,返回元组

3、shutil模块

方法 说明
copy(src,dst)
copyfile(src,dst)
copytree(src,dst)
disk_usage(path) 查看磁盘情况
move(src,dst)
rntree(path) 递归删除文件夹
make_archive(base_name,format,) 创建tar或者zip文件
unpack_archive() 解压缩

标签:返回,文件,第九章,文件夹,fp,path,open
From: https://www.cnblogs.com/tihumenjiang/p/18047226

相关文章

  • 程序是怎样跑起来的第九章读书笔记
    第九章则告诉我们操作系统和应用的关系第九章分为五个小节来阐述首先介绍了操作系统的历史操作穷的发展是一个逐渐演讲的过程。早教操作系统主要关注于简单的任务调度和硬件管理。随着计算机技术的不断进步,操作系统的功能也变得越来越复杂、包括内存管理、进程管理、文件系统管理......
  • python生成Excel文件减少使用内存
    1、openpyxl模块生成2、xlsxwriter模块contant_memory=True生成TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRussianChineseTraditionalIndonesianSlovak......
  • Eclipse中快速定位当前文件所在的位置
    1.问题当项目中文件过多,想要快速定位编辑器中当前文件位置,该怎么做?2.解决项目中的文件比较多,有的时候需要找到某个文件在哪个文件夹下,这个时候一个一个找就浪费时间和精力了,可以借助下面这个eclipse自身的功能找到。如图,在PackageExplorer中,选中这两个箭头的按钮,点击所要看......
  • js使用a标签下载文件并指定名称
    当使用js下载路径带有xxxxx.png的路径图片时,下载下来的名称一直是xxxxx.png,有时候又需要指定文件名称,代码如下downFile(ShowUrl,Name){//ShowUrl表示路径Name表示需要的名称constx=newwindow.XMLHttpRequest();x.open('GET',ShowUrl,true);x.resp......
  • webpack5多入口的时候HtmlWebpackPlugin怎么处理多个html文件
    constHtmlWebpackPlugin=require('html-webpack-plugin');module.exports={entry:{app1:'./src/app1.js',app2:'./src/app2.js'},output:{filename:'[name].bundle.js',path:path.resolve......
  • dbus-c++/dbus.h:没有那个文件或目录
    dbus-c++/dbus.h:没有那个文件或目录作者:Linux服务器开发栏目:公开2023-10-2612:38160如果你在使用dbus-c++时遇到了”dbus.h:没有那个文件或目录”的错误,这可能是因为你的编译环境缺少DBus开发库。要解决这个问题,你需要安装DBus开发库。根据你所用的操作系统不同,具体步骤可......
  • 《程序是怎样跑起来的》第九章读后感
    《程序是怎样跑起来的》第九章深入探讨了操作系统与应用程序之间的关系,以及操作系统如何管理硬件资源。这一章节主要包含以下内容:操作系统与监控程序:操作系统最初的形式是监控程序,其主要功能是加载和运行其他程序。系统调用:操作系统提供了一系列的小型函数,这些函数及其调用行为......
  • 阅读《程序是怎样运行的》第九章
    操作系统和应用的关系是第九章的要点,接下来我们就讲讲吧。首先呢程序的加载和运行时是监控程序的主要功能。监控程序也可以说是操作系统的原型;其次在操作系统上运行的程序称为应用或者应用程序。文字处理软件和表格计算软件等都是应用;接着系统调用(systemcall)称为调用操作系统功能......
  • 多线程文件拷贝
    多线程文件拷贝#include<stdio.h>#include<pthread.h>#include<unistd.h>#include<stdlib.h>#include<assert.h>#include<sys/mman.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#inclu......
  • 树莓派3B修改根文件系统为f2fs
    目录前言操作简述我的实际操作步骤1.准备2.查看树莓派分区信息3.备份根分区4.格式化树莓派TF卡根分区为f2fs文件系统5.恢复备份前言在TF卡、固态硬盘之类的nand存储介质上,f2fs比起ext4之类的文件系统在性能和寿命上都有较大优化。所以我决定使用f2fs来作为我树莓派3B的根分......