在自己电脑任一盘符中新建以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)
运行结果:
删除文件: 9bWYthAE.txt 删除文件: cL6pmyvx.txt 删除文件: CNgE6Tea.txt
对于os.mkdir,如果已经有了同名的目录,再新建会报错。
splitext是Python中的一个内置函数,用于将文件名与文件扩展名分离,返回一个元组。
其中选用choices的原因是因为:
choices随机获取元素时可以包含重复元素,也就是一个元素有可能会出现多次。
sample随机获取元素时不可以包含重复元素,也就是一个元素只能出现一次。
当在获取元素时,k值大于被获取对象的长度时,choices就不会报错,但是sample就会报错。