python办公自动化-1

import os

print(os.getcwd())  #获取当前python程序运行路径

print(os.path.join('a','b'))  #路径连接,os.path.join(第一个,第二个,第三个,...)

print(os.listdir()) #当前文件夹下所有文件和文件夹,输出的是列表
print(os.listdir('e:/'))   #绝对路径,‘e:\\’也行
print(os.listdir('./lib')) #相对路径

files = os.listdir()
for file in files:
    print(file, os.path.isdir(file))   #os.path.isdir(要判断的文件或者文件夹路径) 判断是否是文件夹
#print('*'*20)
print(os.scandir())
for file in os.scandir():
    print(file.name, file.path, file.is_dir())

#os.walk(指定的绝对路径或相对路径)
for dirpath, dirnames, files in os.walk('./'):  #dirnames是dirpath这个文件夹下的子文件夹列表;files是dirpath这个文件夹里的文件列表
    print('发现文件夹:{}'.format(dirpath))
    print(files)

print('abc.txt'.startswith('ab'))
print('abc.txt'.endswith('txt'))

import glob
print(glob.glob('work*.py'))
print(glob.glob('wo*2.py'))
print(glob.glob('work[0-9].py'))
print(glob.glob('work[0,1,2].py'))
# * 匹配所有
# ? 匹配任何单个字符
# [seq] 匹配seq中的任何字符
# [!seq] 匹配任何不在seq中的字符
print(glob.glob('**/*.py', recursive=True)) #用**表示任意层文件或文件夹,recursive=Ture会不断进入文件夹内

import fnmatch  #用来匹配文件名
print(fnmatch.fnmatch('work1.py', 'w*1.py'))
print(fnmatch.fnmatch('work1.py', 'w*[0-9].py'))

for file in os.scandir():
    print(file.name, file.stat(), file.stat().st_ctime)
print(os.stat('work1.py'))  #os.stat(指定文件路径)

import time
print(time.ctime(1602509447.4977667))   #时间戳转换为正常时间

import datetime
that_time = datetime.datetime.fromtimestamp(1602509447.4977667) #datatime模块转换时间
print(that_time, that_time.hour, that_time.minute, that_time.second, that_time.year, that_time.month, that_time.day)

#读取文件内容 open(),readlines(),close(); 'r'表示读取文件
f = open('1.txt', 'r', encoding='utf-8')
text = f.readlines()
print(text)
f.close()
# with...as...,不需要再单独写close()
with open('1.txt', 'r', encoding='utf-8') as f:
    text = f.readlines()
    print(text)
#写入文件,open(),write(),'w','a',若无文件则创建一个,若有文件,'w'会清空原内容,'a'会接原内容继续写入
with open('2.txt', 'w', encoding='utf-8') as f:
    text = 'first line\nsecond line\n'
    f.write(text)
    f.write('third line\n')

#创建临时文件存储数据TemporaryFile()
from tempfile import TemporaryFile
f = TemporaryFile('w+') #'w+'表示写入及读取文件
f.write('hello')
f.seek(0)   #.seek(0)表示回到文件开头位置
data = f.readlines()
print(data)
f.close()
#程序运行完后会自动删掉临时文件
#建议使用with...as...
with TemporaryFile('w+') as f:
    f.write('hello')
    f.seek(2)   #光标
    data = f.readlines()
    print(data)
#创建临时文件夹 TemporaryDirectory()
from tempfile import TemporaryDirectory
with TemporaryDirectory() as tmp_folder:
    print('临时文件夹已创建:{}'.format(tmp_folder)) #程序结束后会自动删掉该文件夹

#创建文件夹 os.mkdir('新文件夹') 当文件夹已存在时会报错
#检测该文件夹是否存在 os.path.exists('文件夹名')
if not os.path.exists('新文件夹'):
    os.mkdir('新文件夹')
#创建多层文件夹 os.makedirs('第一层文件夹/第二层文件夹/第三层文件夹') 当最里层文件夹存在时会报错

#复制文件 shutil模块,shutil.copy(要复制的文件,要复制到的位置)
#第二个参数写某个文件夹位置,则复制到该文件夹下;第二个参数写某个文件路径,复制到这个路径并重命名
import shutil
shutil.copy('1.txt','./新文件夹')
shutil.copy('1.txt','./新文件夹/3.txt')
#复制文件夹 shutil.copytree(要复制的文件夹,要复制到的新文件夹位置)  新文件夹不能已存在

#移动文件夹 shutil.move(要移动的文件/文件夹,要移动到的位置)  第二个参数写某个文件夹位置,则移动到该文件夹下;第二个参数写某个文件路径,移动到这个路径并重命名
#如果是文件夹记住最后加斜杠/  shutil.move('1.txt/文件夹名','文件夹名/')

#重命名文件或文件夹  os.rename(要重命名的文件/文件夹,新的名字)

#删除文件  os.remove('要删除的文件')  只能删文件,若是文件夹路径会报错
#删除文件夹  shutil.rmtree('要删除的文件夹')

########################################################

#读取压缩包内文件 zipfile.ZipFile(),.namelist()
import zipfile
with zipfile.ZipFile('1.zip', 'r') as zipobj:
    print(zipobj.namelist())
#处理压缩包里的中文 .encode('cp437').decode('gbk')
with zipfile.ZipFile('1.zip', 'r') as zipobj:
    for file_name in zipobj.namelist():
        print(file_name.encode('cp437').decode('gbk'))
#读取压缩包内文件信息 zipobj.getinfo()
with zipfile.ZipFile('1.zip', 'r') as zipobj:
    for file_name in zipobj.namelist():
        info = zipobj.getinfo(file_name)
        file_name = file_name.encode('cp437').decode('gbk')
        print(file_name, info.file_size, info.compress_size, info)  #file_size是原始文件大小,compress_size是压缩后大小,单位是字节
#将压缩包内单个文件解压出来 zipobj.extract(压缩包内要解压的文件名,解压到哪个位置)
with zipfile.ZipFile('1.zip', 'r') as zipobj:
    zipobj.extract('1.txt', 'e:\\')
#将所有文件都提取出来 .extractall(path='./folder/', pwd=b'password')
with zipfile.ZipFile('1.zip', 'r') as zipobj:
    zipobj.extractall(path='./folder/')
#创建压缩包 zipobj.write(待压缩文件名)
file_list = ['1.txt', '2.txt']
with zipfile.ZipFile('创建的压缩包.zip', 'w') as zipobj:
    for file in file_list:
        zipobj.write(file)
#向已有压缩包内添加文件
with zipfile.ZipFile('压缩包.zip', 'a') as zipobj:
    zipobj.write('1.txt')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值