小白要愉快地Python,做的第一个小项目。
花了整个下午和晚上的时间。
这次是心血来潮,下午走着一边喝水,突然想要将硬盘里的所有书,列个表来,排队问候。想起Python断断续续学,遥遥无期,再不用就要又重新来过了。赶紧放下水杯,正襟危坐,认真理清问题。
确认下我们的目标:获得硬盘上文件名列表,并打印出来。
1、具体文件夹下的第一层文件名字
2、具体文件夹下的所有层级文件名字(以下代码是获得所有文件名)
*要的是文件名,不带路径的。
放上代码和密密麻麻的备注:
import os
def walk(dirname):
for name in os.listdir(dirname):
path = os.path.join(dirname, name)
if not name.startswith("."):
if os.path.isfile(path):
print(name)
else:
walk(path)
walk("dirname")
备注:为了美观,去掉了我密密麻麻的备注。撒手,要的可以问我拿,超级小白爱心雕刻米开朗琪罗型备注。
os.listdir返回的是:给定目录的下一层,仅单层文件名列表,包括隐藏的文件名,就是以"."开头的那些文件。
所以,这个小项目,遇到的最大难点,就是去掉这个"."开头的文件,再打印出文件名。这里用的是:
.startswith(".")
这是个布林判断,打印出的是TRUE或者False的值,以"."开头就是TRUE,我们要的是相反的,所以用 if not name.startswith("."):
很多人的解答都是基于window和Python3以下的,搞了半天都不适合我。我自己用print的方式,才慢慢测试出,以上代码,适合Mac下的Python3.8。
叮咛小白们:一定要多多食用print的方法,找出问题所在。我们搞不懂的,大概95%的print能告诉我们。
另,第一次用Markdown,怎么没有缩进,差评差评,撕咬撕咬撕咬。
网友评论