Python-组织文件

Posted jiablogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-组织文件相关的知识,希望对你有一定的参考价值。

1.复制文件和文件夹

shutil.copy(source,destination) 复制文件,返回一个字符串,表示被复制文件的路径

ret = shutil.copy(‘name.txt‘,‘../2019-07-09/‘)  # 复制到指定文件夹下
ret = shutil.copy(testcase.xlsx,testcase1.xlsx) #复制并指定文件名称
print(ret)

shutil.copytree()将复制整个文件夹,以及它包含的文件夹和文件

ret1 = shutil.copytree(rE:\jiashumeng\exercise\2019-07-09,rE:\jiashumeng\exercise\2019-07-10copy)
# 不能复制到目录存在的文件
print(ret1)

2.文件和文件夹的移动与改名

shutil.move(source, destination),将路径 source 处的文件夹移动到路径
destination,并返回新位置的绝对路径的字符串。

shutil.move(name2.txt,rE:\jiashumeng\exercise\2019-07-09) #移动到指定目录
shutil.move(‘name.txt‘,‘name2.txt‘) #移动并修改名称
-shutil.move(‘name.txt‘,‘../2010-07-09/‘) 如果没有2010-07-09文件夹,则会创建2010-07-09文件 一般不用

如果在 C:\eggs 中原来已经存在一个文件 bacon.txt,它就会被覆写。因为用这
种方式很容易不小心覆写文件,所以在使用 move()时应该注意。

3.永久删除文件和文件夹

os.unlink(path) 将删除path处文件,同os.remove(path)
os.rmdir(path) 将删除path处的文件夹。该文件夹必须为空,其实没有任何文件和文件夹
shutil.rmtree(path) 将删除path处的文件夹,它包含的所有文件和文件夹都会被删除

永久删除文件和文件夹(包括文件夹)
shutil.rmtree("E:\\jiashumeng\\exercise\\2019-07-10copy\\")
for i in os.listdir(rE:\jiashumeng\exercise\2019-07-10):
    if i.endswith(.xlsx):
        os.unlink(i)
# 删除文件
os.unlink(path)
os.remove(path)

4.安全删除文件和文件夹

利用 send2trash,比 Python 常规的删除函数要安全得多,因为它会将文件夹和文件发送到计算机的垃圾箱或回收站,而不是永久删除它们。

baconFile = open(name.txt, a)
baconFile.write(Bacon is not a vegetable)
baconFile.close()
send2trash.send2trash(name.txt)

5.遍历目录树

for folderName, subfolders, filenames in os.walk(E:\exercise):
    print(folderName:,folderName)

    for subfolder in subfolders:
        print(subfolder:,subfolder)

    for filename in filenames:
        print(filename:,filename)

1.当前文件夹名称的字符串。
2.当前文件夹中子文件夹的字符串的列表。
3.当前文件夹中文件的字符串的列表。

5.压缩与解压文件

1.读取ZIP文件

if zipfile.is_zipfile(log(1).zip):
    name = zipfile.ZipFile(log(1).zip) 
    print(name.namelist()) # 包含所有文件和文件夹的字符串的列表

2.从ZIP文件中解压缩

ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当
前工作目录中

name = zipfile.ZipFile(‘log(1).zip‘) 
name.extractall(../2019-07-10/log)

ZipFile 对象的 extract()方法从 ZIP 文件中解压缩单个文件。

name = zipfile.ZipFile(‘log(1).zip‘) 
name.extract(20190627/20190627_11.txt,rE:\jiashumeng\exercise\2019-07-10)
name.close()

传递给 extract()的字符串,必须匹配 namelist()返回的字符串列表中的一个。或
者,你可以向 extract()传递第二个参数,将文件解压缩到指定的文件夹,而不是当
前工作目录。如果第二个参数指定的文件夹不存在,Python 就会创建它。extract()
的返回值是被压缩后文件的绝对路径。

3.创建和添加到 ZIP 文件

要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入‘w‘
作为第二个参数(这类似于向 open()函数传入‘w‘,以写模式打开一个文本文件)。
如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指
的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添
加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压
缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩
算法,它对各种类型的数据都很有效)

newZip = zipfile.ZipFile(../2019-07-09/new.zip,w)
newZip.write(20190627, compress_type=zipfile.ZIP_DEFLATED)
newZip.close()

 

以上是关于Python-组织文件的主要内容,如果未能解决你的问题,请参考以下文章

:Python项目组织结构-第一节:包模块以及__init__.py文件

如何组织 python / Boost Python 项目

如何在不同文件夹中组织的多个模块的项目中在 python 中进行导入?

在通过 Python (discord.py) 输入追加时组织 JSON 文件

python中的模块

在模块和/或包中组织 Python 类