0
我已經試過這樣:如何讓python列出目錄中的所有文件擴展名?
ListFiles = list(os.walk(os.getcwd()))
SplitTypes = []
for i in range (0 , len(ListFiles)):
SplitTypes.extend(ListFiles[i].rsplit(".") [1])
print(SplitTypes)
,但我得到的結果是這樣的:
['p', 'y', 't', 'x', 't', '3', '2', ' ', 'p', 'm', '4', '0', '1', '2', '2', '4', '1', '4', 's', 'k', 'p', 'm', 'p', '4']
該數字是因爲截圖我曾在該目錄中,時間被」分離的。 「並且它們被分開。
我想要的結果顯示:
['py', 'txt', 'skp', 'png']
或類似的東西。
並且此文件名'Screen Shot 2017-05-24 at 11.24.33 am.png'應該只顯示png位。 在此之後,我將使用set()刪除重複項。
如果沒有文件夾,此代碼將工作,在第一個中,我得到的結果與原始代碼中的第一個結果沒有多大區別,唯一的區別是它只給出了最後一個字母表。例如。 txt變成't',py變成'y'。除了有文件夾時,第二個代碼運行良好。 os.listdir(路徑)列出了文件夾,而不僅僅是文件名(因爲我使用的是mac,所以可能是原因) – Addie
是的,正如答案中所提到的,第二個代碼片段只在沒有其他代碼時才起作用文件夾。我再次測試了我的第一個代碼片段,它在我的Ubuntu機器上運行良好。我快速瀏覽了文檔,並且找不到任何指向Ubuntu和Mac上行爲差異的任何事情。可能,我忽略了一些東西。 –
但我對Mac OS根本不熟悉。你能從循環內打印出walk_output變量,並在這裏輸出一些示例文件夾的輸出。這將幫助我找到問題。 –