python腳本工具-2 去除擴展名后提取目錄下所有文件名並保存



文件夾里有多個RM格式的視頻文件,現需要把它們的文件名都提取出來,並去掉文件的擴展名,以便放到需要的網頁里。

源代碼:

# --- picknames.py ---
import os
filenames=os.listdir(os.getcwd())
for name in filenames:
     filenames[filenames.index(name)]=name[:-3]
out=open('names.txt','w')
for name in filenames:
     out.write(name+'\n')
out.close()

 

解析:

 

(1)import os,導入os這個函數庫,在Python的術語里叫模塊。

(2)os.getcwd(),返回一個表示當前工作目錄的字符串,若是在 D:\python目錄下執行該程序則此函數返回的就是"D:\python"。程序中將此字符串在作為參數傳遞

給os.listdir()函數,它的作 用是返回一個參數所指定目錄的所有文件名字符串的列表,如果目錄內有文件file1.rm file2.rm file3.rm,則返回值是['file1.rm','file2.rm','file3.rm']

(3)filenames=os.listdir(os.getcwd())將當前工作所有文件名字符串的列表賦值給變量filenames。

 

(4)for name in filenames:
       filenames[filenames.index(name)]=name[:-3]

這里是一個for循環,這里的循環用in關鍵字將 filenames中的元素依次賦給局部變量name,所以一循環一次name就能得到一個文件名字符串,這樣我們就可以歷遍所有的文件名了。for是復 合語句所以用冒號結束,下一行是循環體。

filenames[filenames.index(name)]=name[:-3]這一句,在每次循環里將name中的文件名字符串去 掉最后的3個字符,也就是.rm擴展名,然后重新賦給filenames列表中的每個元素。Python里對列表和字符串等的操作十分靈活,name[: -3]返回了一個新的字符串。它去了name中從開頭到倒數第四個元素,-3表示從最后開始的第三個元素,但在提取操作中並不包括-3所表示的那個元素也 不改變變量name本身。filenames.index(name)返回列表里和name值相同的元素的索引。這樣我們就可以把新的文件名依次賦給 fienames了。

 

(5)接着我們就可以把它們輸出到一個文本文件里,以后粘貼的到別的地 方。用out=open ('names.txt','w')打開一個名位out的文件對象,open()函數在當前目錄里新

建了一個名位names.txt的文本文件,w表示文 件對象out使用寫模式(Write Mode),參數要用單引號括住。open()是內建函數並非os模塊里的函數,因此也不用os.來限定調用。

 

(6)接着又是一個循環,依次將filenames里的每個字符串輸出到out文件對象中,同樣要注意行首的縮進。

for name in filenames:
     out.write(name+'\n')
out文件對象調用write方法(函數),將每次循環里不同的name的值寫到name.txt文件中。\n想必學過一點編程的人都知道,是轉意字符表示換行符。輸出完畢之后要調用close方法關閉out文件對象:out.close()

 

 

這樣一個簡單的程序就完成了,將其保存為 picknames.py,然后復制到需要的目錄中。在cmd命令行提示符窗口下鍵入python picknames.py(擴展名py不可少)或者在文件夾窗口里直接點擊運行它就可以,安裝好的解釋器會自動解釋並運行此程序。運行完畢之后就可以看到 文件夾里多了一個name.txt文件,內容是:
file1
file2
file3
...

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM