我正在做一個小專案,該專案要求我使用 Python 將某個目錄中的所有檔案名大寫“例如:輸入:Brandy.jpg,輸出:BRANDY.jpg”。問題是我以前從未在多個檔案上做過,我所做的如下:
universe = os.listdir('parallel_universe/')
universe = [os.path.splitext(x)[0].upper() for x in universe]
但是我所做的只是將串列中的名稱大寫,而不是目錄本身中的檔案,輸出如下所示:
['ADAM SANDLER','ANGELINA JULIE','ARIANA GRANDE','BEN AFFLECK','BEN STILLER','BILL GATES', 'BRAD PITT','BRITNEY SPEARS','BRUCE LEE','CAMERON DIAZ','DWAYNE JOHNSON','ELON MUSK','ELTON JOHN','JACK BLACK','JACKIE CHAN','JAMIE FOXX','JASON SEGEL', 'JASON STATHAM']
我在這里想念什么?而且由于我在 Python 方面沒有太多經驗,如果您的答案包括對每個步驟的解釋,我會很高興,并提前致謝。
uj5u.com熱心網友回復:
現在,您正在將字串轉換為大寫,僅此而已。沒有進行實際的重命名。為了重命名,您需要使用os.rename
如果您要使用 包裝代碼os.rename,它應該可以解決您的問題,如下所示:
[os.rename("parallel_universe/" x, "parallel_universe/" os.path.splitext(x)[0].upper() os.path.splitext(x)[1]) for x in universe]
我已經洗掉了分配universe=,因為這條線不再回傳一個串列,而是你會得到一堆None物件。
檔案os.rename:https ://docs.python.org/3/library/os.html#os.rename
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/466205.html
