第一次输入时如何使用变量

uck

谁可以帮助我编写脚本?

如果audiofile.tag.genre为空,我想通过输入输入流派,

每次当audiofile.tag.genre为空时,我都想从enter输入接受第一个流派

import eyed3
import eyed3.mp3
import sys, os, subprocess
import os, datetime

def get4():
    global genre

    if not genre:   
        while (True):
            try:
                genre = input("Input Genre: ")
            except ValueError:
                break
            break
            return genre
    else:
        return genre

topath = r"c:\dn"

def get(topath):
    os.chdir(topath)
    for filename in os.listdir(topath):
        if filename.endswith(".mp3"):
            audiofile = eyed3.load(filename)
            if not audiofile.tag.genre:
                get4()
                audiofile.tag.genre = genre
                audiofile.tag.save()

get(topath)

错误:

 name 'genre' is not defined
wjandrea

正如我们在chat中讨论的那样,仅当mp3还没有流派时,您才希望获得用户输入,然后将相同的输入用于以下所有mp3。您可以通过设置默认值genre = None,然后genre is None在需要时进行检查来做到这一点

另外,我会使用比更具描述性的名称get4,例如get_genre

def get(topath):
    genre = None  # Default before user input
    ...
    if not audiofile.tag.genre:
        if genre is None:
            genre = get_genre()
        audiofile.tag.genre = genre
        audiofile.tag.save()

这样,您就不会使用全局变量(这很麻烦),并且可以简化get_genre为仅向用户询问类型然后返回它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何避免在用户第一次输入时显示这些消息

第一次输入时只生成一次随机数

React onChange 事件在第一次输入时触发空字符串

onChange 事件不会在第一次输入时触发

如何使Django UpdateView仅在第一次使用?

VueJS 不会在 IE11 中的第一次输入时触发输入事件

第一次使用Mockito

Laravel - 第一次使用

第一次使用MVC

第一次使用 FOR

UITextField 委托“shouldChangeCharactersIn”不会在文本字段中的第一次输入时调用

第一次输入错误数据时如何重新要求用户输入

第一次输入错误后如何检查输入是否与列表中的项目相同?

如何接受一个输入进行第一次迭代?

输入.on('keydown')第一次不起作用

第一次输入后隐藏占位符

如何仅在keydown或keyup中第一次抑制输入的值

第一次单击HTML输入字段微调器时,如何更改显示的值?

如何将类变量从程序的第一次执行传递到下一次执行?

如何在 R 数据框中添加变量第一次和最后一次出现的列?

Javascript变量第一次未正确设置

角度4变量第一次不更新

根据第一次出现的值生成变量

第一次调用函数后如何清除变量的内存

如何为while循环的第一次迭代设置PHP变量?

ValueError:尝试重用与第一次使用范围不同的变量范围的RNNCell

第一次使用变量时功能不起作用

如何使用powerscript提取一个值的第一次出现

第一次插入时空列的Sql数据库设计