Python程序生成每个子目录的注释文件
如果您喜欢:GitHub带脚本下载。
我最近观看了StudySession提供的one-hour Python class学习Python语法的基础知识。该类涵盖了诸如变量,数据类型,条件,循环,功能,类和所有基础知识之类的主题,因为我想尝试编写我的第一个自动化内容。以下是...
p>
我的第一个自动化脚本!
我要解决的问题是我有600多首歌曲,我想在我处理它们时为它们做笔记,我想快速做。
p>
我想最终得到的:
我还有另一个简单的自动化项目,我会尽快发布,然后在您管理一个唱片的唱片时发现的更多,即使没有自动化,也很难做到最简单的事情!
实际脚本:
import os
current_directory = os.getcwd() # => this is a string for our current directory
import pathlib
cwd_as_obj = pathlib.Path(current_directory) # => turn that string into a path object
items = list(cwd_as_obj.iterdir()) # => list the paths inside our cwd
folder_count = 0
existing_count = 0
new_count = 0
for item in items:
if item.is_dir(): # if this is a folder
folder_count = folder_count + 1 # count it
file_to_create = f"{item}/{item.name}_Notes.txt" # name a notes file to make (string)
if os.path.exists(file_to_create): # if a notes file already exists
print("File Exists")
existing_count = existing_count + 1 # count it
else: # otherwise
print(f"Creating File {folder_count}: {file_to_create}")
new_count = new_count + 1 # count it
with open(file_to_create, "x") as f: # make a new notes file
f.write(f"{item.name} Notes:") # populate it with a correct heading
f.close()
print(f"{folder_count} Folders found in this directory.")
print(f"{existing_count} Notes Files found in subdirectories.")
print(f"{new_count} new Notes Files created.")
它首先要导入os
模块将当前工作目录路径作为字符串检索。然后,它使用pathlib
模块将字符串路径转换为路径对象。之后,它使用.iterdir()
方法列出了当前工作目录中的所有路径。
然后该程序初始化了三个变量:folder_count
,existing_count
和new_count
,所有初始值为0。然后,程序输入一个for
循环,该循环在当前工作目录中在每个项目(即文件或目录)上迭代,该循环在当前工作目录中迭代。如果该项目是目录(即子目录),则该程序会增加folder_count
变量并继续为该目录创建笔记文件。
快速旁边 - 如果您来自JS,这是字符串插值/模板文字在Python中工作的方式:
在JS中:
wordOne = "Hello"
wordTwo = "World"
console.log(`${wordOne} ${wordTwo}!`) // => "Hello World!"
vs py:
word_one = "Hello"
word_two = "World"
print(f"{word_one} {word_two}!") # => "Hello World!"
背部成为双引号,我们在没有$之前的卷曲括号
p>
笔记文件的名称设置为{item}/{item.name}_Notes.txt
。第一个{item}
是指目录的路径,而{item.name}
指目录的名称。添加了.txt
扩展名来表示这是一个文本文件。
如果子目录中已经存在注释文件,则该程序会递增existing_count
变量并打印消息“文件存在”。否则,该程序会增加new_count
变量,打印消息"Creating File {folder_count}: {file_to_create}"
,然后继续创建一个新文件,其中包含file_to_create
中指定的名称和位置。
要创建一个新文件,该程序将使用x
模式使用open()
函数。 x
模式创建了一个新文件并打开它以供编写。它还使用f.write(f"{item.name} Notes:")
填充文本文件的标题。
要运行它,我们只使用python3 <name_of_script_here.py>
。
完全是我为我所做的控制台,考虑到所有的代码块:
该程序打印了发现的子目录数量,现有笔记文件的数量以及创建的新笔记文件的数量的摘要。该消息包括folder_count
,existing_count
和new_count
变量。
我们以:
您可以检查一下,并在我的GitHub上自己尝试脚本。
下一篇文章将是关于如何获取所有这些文件夹,其中包含多个歌曲的弹跳(随着它们的进展),即版本1,版本2等,并创建一个文件夹,其中每首歌曲都由一个文件表示 - 是最新的。粉碎关注按钮,看看我是如何做到的。让我知道,我是否有任何方法可以使我的博客更容易遵循或更有用的人!
谢谢,
-elliot/big sis