无法修复不需要的输出

2024-06-16 11:43:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在获取所需输出时遇到问题(代码后显示) 我试过几种不同的方法,但似乎都不管用。 下面的代码正是我在尝试修复该问题时遗漏的代码

song_list = []

def get_songs(): # Just gets all songs ready and loaded for other things
    global song_names
    global song_amount
    global song_list
    ############### Variables
    songs_in_folder = list(os.listdir(input_folder)) # Grabs all files in folder Will add for actual .osz detection later on for this stage.
    song_list.append(songs_in_folder) # Adds to song_list which is currently just used for testing else where.
    # Checks if files are even in folder or not, does not check extentions, must fix in the future
    if songs_in_folder >= 1:
        song_amount = 1
    else:
        print("No Songs were found in the directory!")
        time.sleep(2)
        exit()
    ############### Code to clean up file names for users and stuff
    for elem in songs_in_folder:
        beatmap_name = elem[6:] # Cuts off the first 6 characters which are always 6 different numbers ex) 827212 nameless- Milk Crown On Sonnetica => nameless- Milk Crown On Sonnetica

        songs_in_folder = string.strip(beatmap_name,'.osz') # Removes file extention '.osz' leaving just each songs name => nameless- Milk Crown On Sonnetica
        ######## Add song number and name together
        song_list = ("[",song_amount,"]",songs_in_folder) # Fixes lists look without numbers or .osz extention. Easy to read this way.
        song_amount = int(song_amount)
        song_amount = song_amount + 1
        song_list = str(song_list)
        song_list = ''.join(song_list)
        print(song_list)

get_songs()

问题:

输出结果为:('[', 18, ']', ' nameless - Milk Crown On Sonnetica')

而所需的输出/结果应该是:[song_number] Song name 请注意song_number实际上只是song_amount

这是一个更直观的例子[18] nameless- Milk Crown On Sonnetica

如果有任何人有任何问题或意见,请评论这个问题,我会尽快回复你


Tags: 代码nameinforsongonfolderamount
1条回答
网友
1楼 · 发布于 2024-06-16 11:43:06

字符串格式有问题。您似乎没有单独测试您的算法所包含的步骤,因此您不知道在哪里可以看到错误

以下是您的问题的可能解决方案:

song_amount = 18
songs_in_folder = "nameless- Milk Crown On Sonnetica"

'[%d] %s' % (song_amount, songs_in_folder)
# '[18] nameless- Milk Crown On Sonnetica'

'[{}] {}'.format(song_amount, songs_in_folder)
# '[18] nameless- Milk Crown On Sonnetica'

# or for Python 3.6+
f'[{song_amount}] {songs_in_folder}'
# '[18] nameless- Milk Crown On Sonnetica'

主要的收获应该是,在编写一个长函数之前,测试每个可能的步骤

相关问题 更多 >