os模块和文件操作

os模块的基本操作

获取当前Python程序的路径
import os
print(os.getcwd())
路径拼接
import os
print(os.path.join('MyProfects','AI'))
列出目录下面的文件
import os
print(os.listdir())#以列表的形式列出括号内的所有的文件
print(os.path.isdir(r'E:\所有下载文件\qq下载文件\2463983565\FileRecv'))
#判断是否有file这个文件夹
#返回一个迭代器
# print(os.scandir())
for file in os.scandir():
    print(file.name)
    print(file.path)
    print(file.is_dir())
练习
  • 找出当前目录下所有非文件夹的文件

  • 统计其中含有python单词的文件数量

  • 不区分大小写,即大小写都包含在内。

    • 转换成大写.upper()
    • 转换成小写.lower()
  • 输出文件数量

基本思路:
#路径:E:\所有下载文件\百度网盘下载文件
import os
_path = r'E:\所有下载文件\百度网盘下载文件'
files = os.scandir(_path)
num = 0
for file in files:
    # print(file.name)
    #去取出所有非文件夹的文件
    if not os.path.isdir(file):
        if 'python' in file.name.lower():
            num += 1
print(num)

我们会发现一个问题是这样我们只找到了下一级的文件,他并没有深入到文件夹里面去。那么这离我们需要用到一个os.walk()方法了。

os.walk()
import os
print(os.walk('/'))
_path = r'E:\所有下载文件\百度网盘下载文件'
#dirpath:文件路径  dirnames:文件名称 files:文件夹内部有什么
for dirpath, dirnames, files in os.walk(_path):
    print(dirnames,dirpath,files)
文件的创建
import os
if not os.path.exists('新文件'):
    os.mkdir('新文件')
创建多级文件夹
import os
os.makedirs('一/二/三')
复制文件
import shutil,os
# print(os.listdir())
shutil.copy('./index2.py','new.f.py')
复制文件夹
import shutil,os
shutil.copytree('新文件夹''新的新文件夹')#新文件夹不能存在

移动文件
import shutil
shutil.move('旧的文件','新的文件')

重命名
import shutil
shutil.rename('旧文件.txt','新.txt')

删除文件
import os
#删除文件
os.remove('文件的路径')
#删除文件夹
shutil.rmtree('文件夹')

文件操作

写入文件
f = open('file.txt','r',encoding='utf-8')
text = f.readlines()
print(text)
f.close()
#自动关闭
#w清空写入
#a追加
with open('text.txt','a',encoding='utf-8') as f:
    text = '你好我是一个txt'
    f.write(text)

创建临时文件
  • 不会显示路径
from tempfile import TemporaryFile
f = TemporaryFile('w+')
f.write('hello word')
f.seek(0)
data = f.readlines()
print(data)
import time
time.sleep(5)
f.close()
#另一种写法
with TemporyFile as f:
    f.write('你好')
    f.seek(0)
    f.readlines()

seek(0):将光标移动到最前面,括号内的东西为光标的位置。

临时文件如果不将光标转移到最前面他是读不到光标前的内容的。

  • 显示路径
from tempfile import TemporaryDirectory
with TemporaryDirectory() as f:#这个地方的f就是则个临时文件的位置了
    print(f)

练习
  • 找到当前目录下的所有的.zip文件
  • 将所有的文件重命名,在原本文件名的开头加上最后修改的日期
  • 创建一个文件夹backup
  • 将重命名的文件移动到backup中

操作压缩包

输出压缩包内部文件
import zipfile
with zipfile.ZipFile('压缩包.zip', 'r') as zip:
    # print(zip.namelist())
    for filename in zip.namelist():
        info = zip.getinfo(filename)
        newfilename = filename.encode('cp437').decode('gbk')
        print(newfilename, info.file_size, info.compress_size)
#输出
#index - 副本.py 97 86

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读