目的: 把一批文件,按照後綴名新建對應的文件夾,並移動相應的文件到對應的文件夾.實現文件的自動歸類.
import shutil import os path = "/Users/sk/Documents/script_project2_files" files = os.listdir(path) for f in files: end = f.split(".")[-1] if not os.path.exists(path + "/"+end): os.makedirs(path + "/"+end) shutil.move(path+"/"+f, path + "/"+end)
# Python筆記
1. os.listdir(path),返回path下的所有文件名
2. shutil.move(a,b) 把文件從a路徑移動到b路徑
3. os.path.exists() 判斷路徑是否存在,返回True或False4. os.makedirs() 創建文件夾
5. string.split() 分割字符串,返回的是一個list
# 心路歷程
1. path,指定路徑
2. os.listdir(path),讀出文件名
3. 條件判斷後綴名,進行分類,對不同文件創建文件夾,並把同一類文件移入指定文件夾.
具象化想象問題,並在腦子中模擬解決.文件自動歸類:有一堆不同後綴名的文件
1. 識別出不同後綴名的文件
2. 使用Python的某個庫將文件移動到指定文件夾
如何移動文件: 使用內置模塊shutil.move歸類的規則: 自動創建文件夾,並以後綴名作爲文件夾名爲了測試,降低任務的複雜度,可以先手動新建文件夾並命名,只需做到移動特定文件到匹配的文件夾即可
先思考主框架,然後再逐步填充,
完善遇到的問題: 文件格式爲"xxx.xx",如何取出後面的xx呢?
Python的基礎知識不夠紮實,所以會遇到很多問題.卡在了這個問題上,沒有查到相關資料.
> 問題解決string.split(".")[-1]先使用split以`.`進行分割,返回的是一個list,然後取出最後一個分段
學會一些meta的知識點,然後根據自己遇到的問題,進行組合.凡是需要靈活組合的東西,都需要深入的理解之後,纔可以進行.爲什麼需要系統的學習?如果不經過系統的學習,你不知道你不知道.遇到問題,你甚至不知道關鍵詞是什麼,很難順利找到解決方案.通過練習熟練的應用編程語言提供的各種工具(庫,框架),很多時候一個問題有很多種解決方法,但是要找到一個最佳的解決方法不容易.只能通過慢慢積累.
相對路徑:'./'
Unix下 路徑使用`/`分割
可以使用pycharm中的console對自己不熟悉的東西進行測試
```
>> import os
>> os.path.exists('/Users')
True
>> os.path.exists('/Public')
False
```