利用Python程序提取當前目錄下的文件名

# --- 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()


# --- picknames.py --- 是注釋行,Python是用#作為注釋符的,每行注釋的開始都要添加。Python的源代碼是一擴展名py結尾的。

mport os和其他大多數語言一樣,導入os這個函數庫,在Python的術語里叫模塊。

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

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

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

for name in filenames:

? ? filenames[filenames.index(name)]=name[:-3]

for是復 合語句所以用冒號結束,下一行是循環體。

filenames[filenames.index(name)]=name[:-3]這一句,在每次循環里將name中的文件名字符串去 掉最后的3個字符,也就是.rm擴展名,然后重新賦給filenames列表中的每個元素。

Python里對列表和字符串等的操作十分靈活,name[: -3]返回了一個新的字符串。它去了name中從開頭到倒數第四個元素,-3表示從最后開始的第三個元素,但在提取操作中并不包括-3所表示的那個元素也 不改變變量name本身。

filenames.index(name)返回列表里和name值相同的元素的索引。這樣我們就可以把新的文件名依次賦給 fienames了。

接著我們就可以把它們輸出到一個文本文件里,以后粘貼的到別的地 方。

用out=open ('names.txt','w')打開一個名位out的文件對象,open()函數在當前目錄里新建了一個名位names.txt的文本文件,w表示文 件對象out使用寫模式(Write Mode),參數要用單引號括住。

open()是內建函數并非os模塊里的函數,因此也不用os.來限定調用。

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

for name in filenames:

? ? out.write(name+'\n')

out文件對象調用write方法(函數),將每次循環里不同的name的值寫到name.txt文件中。

這個文件我命名為changeName.py,想提取哪個目錄下的文件名,就粘貼到那里運行一下;

當然不然不如直接用dos命令那么方便;

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容