python中文件及目录的一些基本操作
这篇文章将为大家详细讲解有关python中文件及目录的一些基本操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
前言
在python中,内置了文件(file)对象,通过一些内置的方法就可以实现对文件的操作,例如open()方法创建一个文件对象,write()方法向文件写入内容。
一.文件基本操作
1.创建和打开文件
想要操作文件,先要创建或者打开指定文件并创建文件对象,可以通过内置函数open()来实现。
file = open(file_name[,mode[,buffering]])'''file_name : 要创建或者打开的文件名mode : 用于指定文件打开的方式'''
mode参数的参数值表
注意
采用open()函数打开文件时,默认采用的是GBK编码,如果想要用其他编码方式,需要加上encoding参数
file = open('./text.txt','a+',encoding='utf-8')
#需要采用原文件用的编码方式打开,不然会报错
2.关闭文件
打开文件之后,需要及时关闭,以免对文件造成不必要的破坏。可以用内置函数close()。
file = open('./text.txt','a+')
file.close()
注
close()函数先刷新缓冲区中还没有写入的信息,将其写入到文件中,再关闭文件,起到对文件的保护作用。
3.写入文件
语法
file = write(string)
demo
#打开文件file = open('./text.txt','a+')#写入文件file = write('不负代码,不负卿')#关闭文件file.close()
注:
再写入文件的时候要注入打开文件的时候是处于什么模式,不然会把原数据覆盖掉。
4.读取文件
读取文件的前提是在打开文件时,指定的打开模式为r(只读)或者r+(读写)否则,会抛出异常。
(1)读取指定字符
file.read([size])
#size :用于指定要读取的字符个数,如果省略,则一次性读取所有内容。
(2)读取一行
file.readline()
该方法用于读取一行文本
(3)读取全部行
file.readlins()
二.目录操作
python内置了os模块及子模块os.path用于对目录或文件的操作。
os模块提供的与目录相关的函数
os.path模块提供与目录有关的函数
demo —— 获取当前工作目录
import os
print(os.getcwd())
demo —— 判断目录是否存在
import os
print(os.path.exists("c:\\demo"))
注
因为exists()是os的子模块提供的,所以要要加前缀,os.path
demo —— 创建一级目录
import ospath = "c://demo"#如果要创建的目录已经存在,则会抛出异常,先判断要创建的目录是否存在if not os.path.exists(path):os.mkdir(path)else:print('该目录已经存在')
注
mkdir(path)创建的目录是一级目录,如果传入的path中最后一级的上级目录不存在,那么会抛出异常。
demo —— 创建多级目录
import os
os.makedirs("C:\\demo1\\demo2\\...")
demo —— 删除目录
import ospath = "C:\\demo1\\demo2"#判断要删除的目录,如果不存在会抛出问题if os.path.exists(path):os.rmdir("C:\\demo1\\demo2") #删除的是demo2这个文件print("目录删除成功!")else:print("该目录不存")
注:
rmdir()函数只能删除空的目录,如果不为空就不能删除,可以一下代码删除不为空的目录。
import shutilshutil.rmtree("C:\\demo\\text")
demo —— 遍历目录
os.walk()的返回值是一个包含三个元素(dirpath,dirnams,filenames)的元组生成器对象。
dirpath: 是一个字符串,表示当前遍历的路径
dirnames: 是一个列表,表示的是当前路径下包含的子目录
filenames: 也是一个列表,当前目录下的文件
os.walk(top,[topdown][,onerror][,followlinks])'''top: 用于指定要遍历的目录topdown: 可选参数,用于指定要遍历的顺序,如果为True(默认),表示从上到下遍历,如果为False,表示从小到上。'''
import ospath = "C:\\demo"#root 是当前根路径,dirs包含路径下的子目录,files包含了子目录下的二五年间for root,dirs,fles in os.walk(path,topdown=True):for name in dirs:print(os.path.join(root,name))for name in files:print(os.path.join(root.name))
demo —— 产找当前目录下某个文件是否存在
import ospath = "C:\\demo"filename = "love.txt"for root,dirs,files in os.walk(path):for name in files:if filename== name:print(os.path.join(root,name))
关于python中文件及目录的一些基本操作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。