文件作业:
文章目录
1.统计this.txt
*文件中字母(‘a’-‘z’)、大写字母( ‘A’-‘Z’)、数字(0-9)、其他字符的个数。
import os
with open(r"this.txt","r")as f:
lowercase_letter=0
uppercase_letter=0
number=0
others=0
while True:
s=f.readline()#每次读取文件的一行
if not s:#读到文件结束
break;
else:
s=s.strip('\n')#去掉每一行的换行符
i=0
for i in s:
if(i>='a' and i<='z'):
lowercase_letter+=1
elif i>='A' and i<='Z':
uppercase_letter+=1
elif i>='0' and i<='9':
number+=1
else:
others+=1
print('小写字母有:%d'%lowercase_letter)
print('大写字母有:%d'%uppercase_letter)
print('数字有:%d'%number)
print('其他符号有:%d'%others)
运行结果如下:
2.输入特定的路径,以该路径为起点,将其子目录打印到tree.txt
中
获取当前目录下的所有文件和目录,如果是文件,直接写到文件中,如果是目录,则递归调用该函数,直到最后是文件。
代码:
import os
path="D:/test"
def print_tree(path,depth):
pathlist=os.listdir(path)
# with open("tree.txt","a") as f:
# for i in pathlist:
# print("| " * depth +"|___"+i)
# f.write("| " * depth +"|___"+i+"\n")
# path_name=os.path.join(path,i)
# if os.path.isdir(path_name):
# print_tree(path_name,depth+1)#这种写法会使写入文件的非目录在目录的上方
for i in pathlist:
print("| " * depth +"|___"+i)
f=open("tree.txt","a")
f.write("| " * depth +"|___"+i+"\n")
f.close()
# with open("tree.txt","a") as f:
# f.write("| " * depth +"|___"+i+"\n")
path_name=os.path.join(path,i)
if os.path.isdir(path_name):
print_tree(path_name,depth+1)
print_tree(path,0)
os.path.isdir()用于判断对象是否为一个目录
os.path.isfile()用于判断对象是否为一个文件
*注意:这两个方法接收的参数必须是绝对的路径