问题描述
我的目标 - 使用 OS walk 时仅列出 5 个条目。到目前为止,我只能获得我使用 OS.Walk 找到的所有内容的列表或仅列出一个条目。 (通过使用返回函数)
我的代码: 导入操作系统 导入子流程
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\3 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\3 Point Contest.mp4
E:\Symbolic playlists\Nintendo Generation\Slam Dunk Contest.mp4
Finish
如果有什么办法只显示 5 个而不是整个列表,那就太好了!我尝试使用 len() 但我无法弄清楚如何在 os walk 搜索中使用它。
我想说最重要的是 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")