print/list python 中 OS.Walk 只有 5 个条目

print/list only 5 entries from OS.Walk in python

我的目标 - 使用 OS 步行时仅列出 5 个条目。到目前为止,我只能获得使用 OS.Walk 找到的所有内容的列表,或者只能列出一个条目。 (通过使用 return 函数)

我的代码: 进口 os 导入子进程

def playmusic(name):
    for root, dirs, files in os.walk('E:\', followlinks=True):
        for file in files:
            if name in file:
                vlc='C:/Program Files/VideoLAN/VLC/vlc.exe'
                music=str(os.path.join(root,file))
                print(music)
                #subprocess.Popen([vlc, music])
                #return
    print("Finish")
    input()
try:
    s=raw_input("name: ")
    playmusic(s)
except Exception as e:
    print(e)
    print("Error")

结果:

=== RESTART: C:\Users\VGMPC2\Documents\testing scripts\search and print.py ===
name: test
E:\Nes\Jordan Vs Bird Point Contest.mp4
E:\Nes\Jordan Vs Bird\Slam Dunk Contest.mp4
E:\playlist\Action&Adventuretest.xspf
E:\playlist\schedule test 2.xspf
E:\Snes\Lufia II\The Greatest Thieves.mp4
E:\Symbolic playlists\Nintendo Generation Point Contest.mp4
E:\Symbolic playlists\Nintendo Generation\Slam Dunk Contest.mp4
Finish

如果有任何方法只显示 5 个而不是整个列表,那就太好了!我尝试使用 len() 但我无法弄清楚如何在 os 步行搜索中使用它。 我想说最重要的是 music=str(os.path.join(root,file)),因为我相信搜索就是这样。

如有任何想法,我们将不胜感激。谢谢你的时间,

试试这个:

def playmusic(name):
    for root, dirs, files in os.walk('E:\', followlinks=True):
        for file in files[0:5]: #You show the first five only
            if name in file:
                vlc='C:/Program Files/VideoLAN/VLC/vlc.exe'
                music=str(os.path.join(root,file))
                print(music)
                #subprocess.Popen([vlc, music])
                #return
    print("Finish")
    input()
try:
    s=raw_input("name: ")
    playmusic(s)
except Exception as e:
    print(e)
    print("Error")