2011-06-07 91 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