Python 脚本在第一个函数之前调用函数

Python script calling function before first function

所以,我正在做一个个人项目。我使用 youtube-dl 制作了两个 python 脚本,分别下载歌曲和缩略图。歌曲的脚本将歌曲下载为具有自定义名称(由参数指定)的 .mp3 文件。缩略图的脚本下载具有自定义名称(由参数指定)的缩略图的 .webp 文件,并将其转换为 png 和 jpg。我把这两个放到函数里,放在不同的文件夹里,像这样。

yt2mp3 -- youtubeMP3.py
          __main__.py
          thumbnails.py -- __main__.py
                           downloadimg.py

可以在这个 github 存储库中找到完整的脚本:https://github.com/ignition-ctrl/yt2mp3
代码不是很漂亮,但它可以工作。然而,问题是这样的。我的 .bashrc 中有一个名为 downloadmusic() 的函数。它需要两个参数,link 和自定义文件名以及 运行 python 脚本 youtubeMP3.py 和参数。 youtubeMP3.py 具有函数 download_music(),在该函数中它引用了 downloadimg.py 中的函数 download_thumbnail。我的问题是,从我的终端,我可以看到它 运行s download_thumbnail 两次。启动脚本时一次,然后在 运行ning download_music() 之后。我只希望它在 download_music() 之后变为 运行。此代码中的代码应该只有 运行。

determiner = input("Do you want to download the thumbnail?")
    if determiner == "yes" or "y" or "Yes":
        downloadimg.download_thumbnail(str(ytname), str(filename))
    else:
        exit(0)

这是对 download_thumbnail 的唯一引用,但我可以在 download_music() 中输入打印语句之前看到 download_thumbnail() 的终端输出。我还得到了来自 download_thumbnail() 的 jpg 文件的两份副本。我整天都在为这件事绞尽脑汁。如果有人能提供帮助,我将不胜感激。

导入模块时第一次调用 download_thumbnail()。它试图 运行

try:
    download_thumbnail(sys.argv[1], sys.argv[2])
except IndexError:
    raise NameError("Please provide a link and your desired filename")

你可以像这样将其包装在 if 语句中

if __name__ == '__main__':
    try:
        download_thumbnail(sys.argv[1], sys.argv[2])
    except IndexError:
        raise NameError("Please provide a link and your desired filename")try:
    download_thumbnail(sys.argv[1], sys.argv[2])

这样这个块才会运行只在直接执行文件的时候,而不是导入的时候。