Python自动化-01
#初学者 #python #自动化 #music

Python程序生成每个子目录的注释文件

如果您喜欢:GitHub带脚本下载。

我最近观看了StudySession提供的one-hour Python class学习Python语法的基础知识。该类涵盖了诸如变量,数据类型,条件,循环,功能,类和所有基础知识之类的主题,因为我想尝试编写我的第一个自动化内容。以下是...

我的第一个自动化脚本!

我要解决的问题是我有600多首歌曲,我想在我处理它们时为它们做笔记,我想快速做。

我想最终得到的:

Notes Files for All Songs

注意所有歌曲的文件

我还有另一个简单的自动化项目,我会尽快发布,然后在您管理一个唱片的唱片时发现的更多,即使没有自动化,也很难做到最简单的事情!

实际脚本:

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_countexisting_countnew_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!"

背部成为双引号,我们在没有$之前的卷曲括号

笔记文件的名称设置为{item}/{item.name}_Notes.txt。第一个{item}是指目录的路径,而{item.name}指目录的名称。添加了.txt扩展名来表示这是一个文本文件。

Screenshot of Created Files

创建文件的屏幕截图

如果子目录中已经存在注释文件,则该程序会递增existing_count变量并打印消息“文件存在”。否则,该程序会增加new_count变量,打印消息"Creating File {folder_count}: {file_to_create}",然后继续创建一个新文件,其中包含file_to_create中指定的名称和位置。

Notes File Boilerplate Example Screenshot

笔记文件样板示例

要创建一个新文件,该程序将使用x模式使用open()函数。 x模式创建了一个新文件并打开它以供编写。它还使用f.write(f"{item.name} Notes:")填充文本文件的标题。

File Setup Before Script Runs

脚本运行之前的文件设置

要运行它,我们只使用python3 <name_of_script_here.py>

完全是我为我所做的控制台,考虑到所有的代码块:

Running Script & Showing Terminal Output

运行脚本并显示终端输出

该程序打印了发现的子目录数量,现有笔记文件的数量以及创建的新笔记文件的数量的摘要。该消息包括folder_countexisting_countnew_count变量。

我们以:

All Notes Created In Correct Places

在正确的地方创建的所有注释

您可以检查一下,并在我的GitHub上自己尝试脚本。

Preview of my second simple python automation project screenshot.

我的第二个简单Python自动化项目的预览。

下一篇文章将是关于如何获取所有这些文件夹,其中包含多个歌曲的弹跳(随着它们的进展),即版本1,版本2等,并创建一个文件夹,其中每首歌曲都由一个文件表示 - 是最新的。粉碎关注按钮,看看我是如何做到的。让我知道,我是否有任何方法可以使我的博客更容易遵循或更有用的人!

谢谢,
-elliot/big sis