DataWhale Python办公自动化Task01

1.1 文件目录和路径
文件的两个属性,路径和文件名
Python中的文件路径和目录的相关包主要是os,主要的API有
l os.path.join(dir, filename) 用于将字符串拼凑产生当前系统下的路径,

os.path.join('Datawhale','docu') #'Datawhale\\docu'

l os.getcwd() 获取当前的工作目录
l os.chdir(path) 将当天的工作目录切换到指定的path,

os.chdir('D:\\Datawhale\\python办公自动化') 

l os.path.abspath(path):将相对路径转换为绝对路径,将返回参数的绝对路径的字符串
l os.path.isabs(path):判断是否是绝对路径,是返回True,不是则返回False
l os.path.relpath(path,start):返回从start路径到path的相对路径的字符串。如果没提供start,就使用当前工作目录作为开始路径。

os.path.relpath('D:\\Datawhale\\python办公自动化','D:\\')     
\#'Datawhale\\python办公自动化'

l os.path.dirname(path): 返回当前路径的目录名称。
l os.path.basename(path):返回当前路径的文件名称。

path = 'D:\\Datawhale\\python办公自动化\\python课程画图.pptx' 
os.path.dirname(path)   #'D:\\Datawhale\\python办公自动化'
os.path.basename(path)  #'python课程画图.pptx'

l os.path.split(): 将路径拆分为目录名称和文件名称,返回两者组成的一个元组

caFilePath = 'D:\\Datawhale\\python办公自动化\\python课程画图.pptx'
os.path.split(caFilePath)  #('D:\\Datawhale\\python办公自动化', 'python课程画图.pptx')

l os.path.sep代表当前系统中的路径分隔符,例如在windows中就代表’\’

l os.path.exists(path):如果path参数所指的文件或文件夹存在,则返回True,否则返回False。

l os.path.isfile(path):如果path参数存在,并且是一个文件,则返回True,否则返回False。

l os.path.isdir(path):如果path参数存在,并且是一个文件夹,则返回True,否则返回False。

l os.makedirs():#创建目录,若文件夹已存在,不会覆盖,会报错

l os.path.getsize(filepath):返回filepath参数中文件的字节数(注意filepath需要直接指向文件而不是文件夹,如果输入的参数路径path是文件夹,并不会返回文件夹中所有文件的总大小)
l os.listdir(dirpath): 返回dirpath参数中的每个文件
l os.unlink(path): 删除path处的文件。
l os.rmdir(path): 删除path处的文件夹。该文件夹必须为空,其中没有任何文件和文件夹。
l os.walk(path):传入一个文件夹的路径,在for循环语句中使用os.walk()函数,遍历目录树。os.walk()在循环的每次迭代中,返回三个值:
1)、当前文件夹称的字符串。
2)、当前文件夹中子文件夹的字符串的列表。
3)、当前文件夹中文件的字符串的列表。

for folderName, subFolders, fileNames in os.walk(path)

1.2 文件读写
文件读写的三个步骤
1)open() 函数创建file对象
open()函数有不同的打开模式,例如’r’, ‘w’, ‘a’, ‘rb’, ‘wb’
2) read() 或者 write() 方法进行读写
read():读取文件内容。
readlines():按行读取文件中的内容,取得一个字符串列表,列表中每个字符串是文本中的一行且以\n结束。
write():写入文件内容
writelines([str]):用于向文件中写入一序列的字符串。
3) close():函数关闭file对象

1.3 变量保存
1)shelve模块
shelve是一个简单的数据存储方案,类似key-value数据库,可以很方便的保存python对象,其内部是通过pickle协议来实现数据序列化。shelve模块只有一个open()函数,格式为shelve.open(filename, flag)
filename:文件名;
flag:打开数据存储文件的格式;
‘r’ 以只读模式打开一个已经存在的数据存储文件
‘w’ 以读写模式打开一个已经存在的数据存储文件
‘c’ 以读写模式打开一个数据存储文件,如果不存在则创建
‘n’ 总是创建一个新的、空数据存储文件,并以读写模式打开

2) pprint.pformat()
pprint.pformat()函数返回要打印的内容的文本字符串,这个字符串既易于阅读,也是语法上正确的Python代码。

import pprint

cats = [{'name':'Zophie','desc':'chubby'},{'name':'Pooka','desc':'fluffy'}]
print(pprint.pformat(cats))
\# [{'desc': 'chubby', 'name': 'Zophie'}, {'desc': 'fluffy', 'name': 'Pooka'}]

1.4 组织文件
1)shutil模块
可以在Python程序中复制、移动、改名和删除文件
l shutil.copy(source, destination):将路径source处的文件复制到路径destination处的文件夹(source 和 destination 都是字符串),并返回新复制文件绝对路径字符串。
l shutil.copytree(source, destination):将路径source处的文件夹,包括其包含的文件夹和文件,复制到路径destination处的文件夹,并返回新复制文件夹绝对路径字符串。
l shutil.move(source, destination):将路径 source 处的文件/文件夹移动到路径destination,并返回新位置的绝对路径的字符串。
l shutil.rmtree(path):删除 path 处的文件夹,它包含的所有文件和文件夹都会被删除。注意该种删除方法不可恢复删除文件和文件夹
l send2trash.send2trash(path) :将文件或文件夹发送到计算机的垃圾箱或回收站,而不是永久删除

2) zipfile****模块
创建和解压zip文件
l zipfile.ZipFile(‘filename.zip’, ‘w’):以写模式创建一个压缩文件
l write(‘filename’,‘compress_type=zipfile.ZIP_DEFLATED’):如果向write()方法中传入一个路径,Python 就会压缩该路径所指的文件, 将它加到 ZIP 文件中。 如果向write()方法中传入一个字符串,代表要添加的文件名。第二个参数是“压缩类型”参数,告诉计算机用怎样的算法来压缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩算法,它对各种类型的数据都很有效)。

import zipfile

newZip = zipfile.ZipFile('new.zip','w')
newZip.write('Miki.txt', compress_type=zipfile.ZIP_DEFLATED)
newZip.close()

l namelist():返回zip文件中包含的所有文件和文件夹的字符串列表。
l getinfo():返回一个关于特定文件的ZipInfo对象。ZipInfo对象的两个属性:file_size和compress_size,分别表示原来文件大小和压缩后文件大小。
l extractall():从zip文件中解压缩所有文件和文件夹,放到当前工作目录中。也可以向extractall()传递的一个文件夹名称,它将文件解压缩到那个文件夹, 而不是当前工作目录。如果传递的文件夹名称不存在,就会被创建。
l extract():从zip文件中解压单个文件。也可以向 extract()传递第二个参数, 将文件解压缩到指定的文件夹, 而不是当前工作目录。如果第二个参数指定的文件夹不存在, Python 就会创建它。extract()的返回值是被压缩后文件的绝对路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值