目录和文件操作

在自己电脑任一盘符中新建以OS_Test命名的文件夹,并在该文件夹中新建新建3个以.txt,3个 .xlsx为扩展名的文件(文件名由代码随机生成,长度为8,由字母数字组成)。,请写一个程序,删除掉OS_Test目录里面(不包含子目录)所有的扩展名为.txt的文件,并将删除掉的文件名称打印出来。
import os
import random
str_1='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
os.mkdir(r"D:\OS_Test")          #建立目录
str_3=""                         #初始化
for i in range(3):               #三个.txt文件
    str_2=random.choices(str_1,k=8)#获取字母数字组合中的随机一个
    for j in range(8):
        str_3=str_2[j]+str_3#零散的字符串拼接
    str_3="D:\\OS_Test\\" + str_3 +".txt"#路径拼接
    file=open(str_3,'x')#建立新文件
    file.close()
    str_3=""
for i in range(3):#三个.xlsx文件
    str_2=random.choices(str_1,k=8)
    for j in range(8):
        str_3=str_2[j]+str_3
    str_3="D:\\OS_Test\\"+str_3 +".xlsx"
    file=open(str_3,'x')
    file.close()
    str_3 = ""
directory = os.listdir(r"D:\OS_Test")#获取该目录下所有文件
for f in directory:
    ext = os.path.splitext(f)[1]#获取文件的后缀
    if ext == ".txt":#如果为.txt
        os.remove(os.path.join(r"D:\OS_Test", f))#删除
        print("删除文件:", f)

运行结果:

目录和文件操作_第1张图片

删除文件: 9bWYthAE.txt
删除文件: cL6pmyvx.txt
删除文件: CNgE6Tea.txt

对于os.mkdir,如果已经有了同名的目录,再新建会报错。

splitext是Python中的一个内置函数,用于将文件名与文件扩展名分离,返回一个元组。

其中选用choices的原因是因为:

choices随机获取元素时可以包含重复元素,也就是一个元素有可能会出现多次。
sample随机获取元素时不可以包含重复元素,也就是一个元素只能出现一次。
当在获取元素时,k值大于被获取对象的长度时,choices就不会报错,但是sample就会报错。

你可能感兴趣的:(计算机等级二级Python,服务器,运维,python,开发语言,人工智能,大数据,算法)