2011-06-07 101 views
0

我可以在os.listdir()中进行切片吗?只采取一些元素。切片python os.listdir()

+7

为什么不呢?在发布保存的每个人时间之前尝试一些东西(甚至想一想)。 – delnan 2011-06-07 19:42:21

+0

对不起,我是从python开始的。我不认为可以用像g.d.d.c这样的函数使用“[:]”。 – stdio 2011-06-07 19:51:41

+1

在Python中,只要基于前面的返回类型有意义,就可以链接操作。在这种情况下,'os.listdir()'返回一个列表,它使切片符号有效。如果它返回了一个生成器,而您需要以某种方式将其转换为列表,以便能够对其进行分片。 – 2011-06-07 19:54:11

回答

3

我不明白为什么不能:

>>> os.listdir(os.getcwd()) 
['CVS', 'library.bin', 'man', 'PyLpr-0.2a.zip', 'pylpr.exe', 'python26.dll', 'text'] 
>>> os.listdir(os.getcwd())[3:] 
['PyLpr-0.2a.zip', 'pylpr.exe', 'python26.dll', 'text'] 
3

由于os.listdir(path)返回一个列表,你可以在结果使用切片表示法。例如,你可以使用os.listdir(path)[:5]拿到第5分的结果:

>>> import os 
>>> os.listdir('.') 
['f1', 'f10', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9'] 
>>> os.listdir('.')[:5] 
['f1', 'f10', 'f2', 'f3', 'f4'] 

的切片表示法的全面概述见Explain Python's slice notation