人工智能协会纳新培训第三周
心得+延伸内容参考+作业
本周对Github功能进行了初步了解(GitHub就是一个可以将你的本地项目文件同步到Web端,同时又能将在Web端对文件的修改内容下载到本地的一个代码托管平台 。简单理解,Github是代码、文档的百度云,但较百度云来说,Github还能纪录你代码不同版本修改的详细情况,对于项目版本迭代,代码文档的云存储等需求都能够较好的实现。)
同时对机器学习的四种学习方式与分类问题和回归问题的异同点有了一个基本的框架和认识并在前两次课程学习的基础上加深了python对文件的操作运用。
(一)1.统计 this.txt 文件中字母(‘a’-‘z’)、大写字母( ‘A’-‘Z’)、数字(0-9)、其他字符的个数。
import os
with open(r"this.txt","r")as a:
smar=0
big=0
n=0
qi=0
while True:
s=a.readline()
if not s:
break;
else:
s=s.strip('\n')
i=0
for i in s:
if(i>='a' and i<='z'):
smar+=1
elif i>='A' and i<='Z':
big+=1
elif i>='0' and i<='9':
n+=1
else:
qi+=1
print('小写:%d'%smar)
print('大写:%d'%big)
print('数字:%d'%n)
print('符号:%d'%qi)
(二).实现类似DOS命令中的tree命令功能
要求:编写一个python程序,输入特定的路径,以该路径为起点,将其子目录打印到 tree.txt中
1、CMD生成目录树
在 windows 系统中,有一个 CMD 指令可以生成目录树,该条指令是 “tree” 。
以图形显示驱动器或路径的文件夹结构。
TREE [drive:][path] [/F] [/A]
/F 显示每个文件夹中文件的名称。
/A 使用 ASCII 字符,而不使用扩展字符。
注意:如果路径中含有空格,则路径需要用双引号包起来,例如tree “C:\Program Files” 。
Tree命令功能的示例
以下为D盘文件通过tree命令生成目录文件并保存至tree.txt
命令执行之后,在命令行所在目录下会生成一个名为 “tree.txt” 的文件,目录结构已在其中。
[Tree命令范例]
[例一] 作用:把D盘下的所有目录结构以树状结构导出,以文本文件1.txt保存在文件夹d:\下。
tree d: > d:\1.txt 或者 tree d:\ > d:\1.txt
[例二] 作用:把D盘下的所有目录及文件结构以树状结构导出,以文本文件1.txt保存在文件夹d:\下。
tree d: /f > d:\1.txt 或者 tree d:\ /f > d:\1.txt
[例三] 作用:把c:\windows /f > c:\1.txt下的所有目录及文件结构以树状结构导出到文本文件1.txt保存在文件夹c:\下。
tree c:\windows /f > c:\1.txt
[例四] 作用:把c:\downloads\1下的所有目录及文件以树状结构导出,以文本文件1.txt保存在文件夹e:\download\tree\下。
tree c:\downloads\1 /f > e:\download\tree\1.txt
思路:给出一个路径,判断是否为文件,如果是,则字符串拼接;否则,字符串拼接并且递归查询该目录下的文件。字符串拼接的时候以缩进来显示层次结构
tree_str = ''
def generate_tree(pathname, n=0):
global tree_str
if pathname.is_file():
tree_str += ' |' * n + '-' * 4 + pathname.name + '\n'
elif pathname.is_dir():
tree_str += ' |' * n + '-' * 4 + \
str(pathname.relative_to(pathname.parent)) + '\\' + '\n'
for cp in pathname.iterdir():
generate_tree(cp, n + 1)
if __name__ == '__main__':
# 命令参数个数为2并且目录存在存在
if len(sys.argv) == 2 and Path(sys.argv[1]).exists():
generate_tree(Path(sys.argv[1]), 0)
else: # 当前路径
generate_tree(Path.cwd(), 0)
print(tree_str)
以上实现了在控制台打印的功能,下面来实现定义保存文件函数
def save_file(tree, filename='tree.txt'):
with open(filename, 'w', encoding='utf-8') as f:
f.write(tree)
修改命令行参数解析部分:
if __name__ == '__main__':
# 命令参数个数为2并且目录存在存在
if len(sys.argv) == 2 and Path(sys.argv[1]).exists():
generate_tree(Path(sys.argv[1]), 0)
# 命令参数个数为3并且目录存在存在
if len(sys.argv) == 3 and Path(sys.argv[1]).exists():
generate_tree(Path(sys.argv[1]), 0)
save_file(tree_str, sys.argv[2])
else: # 当前路径
generate_tree(Path.cwd(), 0)
print(tree_str)
执行完之后就会在该目录下生成文件
本处参考
https://blog.csdn.net/yaoyefengchen/article/details/80195231
本周的课内学习任务较为繁重,还未能更加深入地理解和运用本周纳新培训的内容,所以借助较多参考,仍需在之后的学习中进行查缺补漏。