Python其实很简单 第十六章 目录管理

Python015

Python其实很简单 第十六章 目录管理,第1张

为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录。文件目录表目至少要包含文件名、文件的类型、文件的长度、访问权限、建立时间、访问时间和文件存储地址等内容。通过前面一章的介绍,我们已经知道在文件信息中已经包含了文件名、文件类型访问权限等信息,而存储地址的信息则包含在目录信息中。

16.1路径

路径通常用一个字符串来表示,可以按照路径信息定位到一个目录或文件。如:“C:UsersAdministratorPictures1.jpg”这个信息可以非常方便的找到这个图片文件,“C:UsersAdministratorPictures”这个信息可以帮助我们找到更多的图片文件。

这里所说的“路径”和上网时碰到的“地址”含义比较相似,互联网就相当于将个人电脑可以访问的范围扩大了,互联网中的地址也是对应某一个存储空间的路径,按照地址可以访问互联网上的信息,就如同按照路径可以找到计算机中的文件一样。

在Python中,可以导入 os模块 来进行目录操作。

1、获取当前工作目录getcwd()函数

例:

import os

print(os.getcwd())

运行结果:

C:UsersAdministratorAppDataLocalProgramsPythonPython38

这个路径是当前Python IDLE所在的地址。

2、获取文件的绝对路径abspath()函数

abspath()函数是os模块的子模块path提供的一个函数。用法举例如下:

import os

print(os.path.abspath(r'test.txt'))

运行结果:

C:UsersAdministratorAppDataLocalProgramsPythonPython38 est.txt

16.2 目录操作类函数

1、判断目录是否存在exists()函数

exists()函数是os模块的子模块path中的函数。使用方法举例如下:

import os

print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))

输出结果:

True

2、创建目录mkdir()函数和makedirs()函数

mkdir()函数和makedirs()函数都是由os模块提供的,下面举例说明用法和区别。

例1:

import os

path='d:test'

if not os.path.exists(path):

os.makedirs(path)

print('该文件目录创建成功!')

如果目录d: est已存在,则不再创建;若不存在,则创建。

例2:

import os

path='d:testtest1test11'

if not os.path.exists(path):

os.makedirs(path)

print('该文件目录创建成功!')

虽然目录d: est已存在,但可以在其下继续创建子目录。上面的代码可以成功地创建d: est est1 est11目录。

mkdir()函数和makedirs()函数用法基本一样,不同之处在于mkdir()函数只能能创建一级目录。

3、删除目录函数rmdir()函数

rmdir()函数是由os模块提供的。

例如:通过上面的例子已经建立了d: est est1 est11目录,现在去删除子目录test11(此子目录为空目录),代码如下:

import os

os.rmdir('d:testtest1test11')

如果要删除的目录非空(其下还包含有文件或文件夹),则不能删除,并且出现Windows文件操作错误的提示(Python是调用操作系统命令完成文件和目录操作的)。譬如d: est目录下含有有子目录,则不能对其进行如下删除操作。

import os

os.rmdir('d:test')

此时,会出现如下错误提示:

Traceback (most recent call last):

File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in

os.rmdir('d:test')

OSError: [WinError 145] 目录不是空的。: 'd:test'

4、删除非空目录函数rmtree()函数

rmtree()函数是由Python内置的标准模块shutil提供的,可以删除目录及目录下的文件和子目录。如删除d: est目录及其下的子目录和文件,可用如下代码:

import shutil

shutil.rmtree('d:test')

5、遍历目录walk()函数

walk()函数是由os模块提供的。

语法格式:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

其中,top是所要遍历的目录的地址;topdown为可选参数,为 True时自上而下遍历 目录,为False时自下而上遍历目录,默认值为True;onerror为可选参数,用于指定异常处理方式,默认为忽略;followlinks为可选参数,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

该函数的返回值为一个三元组(root,dirs,files)。root 所指的是当前正在遍历的这个文件夹的本身的地址;dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录);files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)。

例:遍历d: est目录及其子目录下的所有子目录和文件:

d: est目录及其下的子目录和文件

import os

path='d:test'

tups=os.walk(path) # 函数walk()的返回值为三元组

for root,dirs,files in tups: # 遍历这个三元组

for name in dirs: #遍历存放目录值的元组

print('dir:',os.path.join(root,name))

for name in files: #遍历存放文件名值的元组

print('file:',os.path.join(root,name))

运行结果如下:

dir: d: est est1

dir: d: est est1 est11

dir: d: est est1新建文件夹

file: d: est est1新建文本文档.txt

file: d: est est1 est11新建文本文档.txt

Python OS模块

1.重命名:os.rename(old, new)

2.删除:os.remove(file)

3.列出目录下的 文件 :os.listdir(path)

4.获取当前工作目录:os.getcwd()

5.改变工作目录:os.chdir(newdir)

6.创建多级目录:os.makedirs(r"c:/python /test")

7.创建单个目录:os.mkdir("test")

8.删除多个目录:os.removedirs(r"c:/python") #删除所给路径最后一个目录下所有空目录。

9.删除单个目录:os.rmdir("test")

10.获取文件属性:os.stat(file)

11.修改文件权限与时间戳:os.chmod(file)

12.执行操作系统 命令:os.system("dir")

13.启动新进程:os.exec(), os.execvp()

14.在后台执行程序:osspawnv()

15.终止当前进程:os.exit(), os._exit()

16.分离文件名:os.path.split(r"c:/python/ hello.py ") –>("c://python", " hello.py ")

17.分离扩展名:os.path.splitext(r"c:/python/ hello.py ") –>("c://python//hello", ".py")

18.获取路径名:os.path.dirname(r"c:/python/ hello.py ") –>"c://python"

19.获取文件名:os.path.basename(r"r:/python/hello.py") –>"hello.py"

20.判断文件是否存在:os.path.exists(r"c:/python/hello.py") –>True

21.判断是否是绝对路径:os.path.isabs(r"./python/") –>False

22.判断是否是目录:os.path.isdir(r"c:/python") –>True

23.判断是否是文件:os.path.isfile(r"c:/python/hello.py") –>True

24.判断是否是链接文件:os.path.islink(r"c:/python/hello.py") –>False

25.获取文件大小:os.path.getsize(filename)

26.*******:os.ismount("c://") –>True

27.搜索目录下的所有文件:os.path.walk()

[2.shutil]

1.复制单个文件:shultil.copy(oldfile, newfle)

2.复制整个目录树:shultil.copytree(r"./setup", r"./backup")

3.删除整个目录树:shultil.rmtree(r"./backup")

[3.tempfile]

1.创建一个唯一的临时文件:tempfile.mktemp() –>filename

2.打开临时文件:tempfile.TemporaryFile()

[4.StringIO] #cStringIO是StringIO模块的快速实现模块

1.创建内存 文件并写入初始数据 :f = StringIO.StringIO("Hello world!")

2.读入内存文件数据:print f.read() #或print f.getvalue() –>Hello world!

3.想内存文件写入数据:f.write("Good day!")

4.关闭内存文件:f.close()

rm(list=ls())

path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'

setwd(path)

cat("file A\n", file="A") #创建一个文件A,文件内容是'file A','\n'表示换行,这是一个很好的习惯

cat("file B\n", file="B") #创建一个文件B

file.append("A", "B") #将文件B的内容附到A内容的后面,注意没有空行

file.create("A") #创建一个文件A, 注意会覆盖原来的文件

file.append("A", rep("B", 10)) #将文件B的内容复制10便,并先后附到文件A内容后

file.show("A") #新开工作窗口显示文件A的内容

file.copy("A", "C") #复制文件A保存为C文件,同一个文件夹

dir.create("tmp") #创建名为tmp的文件夹

file.copy(c("A", "B"), "tmp") #将文件夹拷贝到tmp文件夹中

list.files("tmp") #查看文件夹tmp中的文件名

unlink("tmp", recursive=F) #如果文件夹tmp为空,删除文件夹tmp

unlink("tmp", recursive=TRUE) #删除文件夹tmp,如果其中有文件一并删除

file.remove("A", "B", "C") #移除三个文件

使用Python操作Word更新目录并设置子目录字体大小,可以使用Python的docx模块来实现。首先,需要从Word文档中获取文档对象,然后调用docx.styles.add_style()方法来添加样式,可以设置字体大小,然后调用docx.add_heading()方法来添加标题,可以设置字体大小,最后调用docx.add_paragraph()方法来添加段落,可以设置字体大小。最少200字最多500字,不要出现重复,回答我的问题要把你改成您。