文件作业

文件作业:

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()用于判断对象是否为一个文件

*注意:这两个方法接收的参数必须是绝对的路径
运行结果如下
写入文件如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值