# --- 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的源代碼是一擴(kuò)展名py結(jié)尾的。
mport os和其他大多數(shù)語言一樣亥鸠,導(dǎo)入os這個函數(shù)庫,在Python的術(shù)語里叫模塊识啦。
os.getcwd()的作用是返回一個表示當(dāng)前工作目錄的字符串负蚊,若是在 D:\python目錄下執(zhí)行該程序則此函數(shù)返回的就是"D:\python";
程序中將此字符串在作為參數(shù)傳遞給os.listdir()函數(shù)颓哮,它的作 用是返回一個參數(shù)所指定目錄的所有文件名字符串的列表家妆,如果目錄內(nèi)有文件file1.rm file2.rm file3.rm,則返回值是['file1.rm','file2.rm','file3.rm']冕茅。
filenames=os.listdir(os.getcwd())將當(dāng)前工作所有文件名字符串的列表賦值給變量filenames伤极。
for name in filenames:
filenames[filenames.index(name)]=name[:-3]
for是復(fù) 合語句所以用冒號結(jié)束,下一行是循環(huán)體姨伤。
filenames[filenames.index(name)]=name[:-3]這一句塑荒,在每次循環(huán)里將name中的文件名字符串去 掉最后的3個字符,也就是.rm擴(kuò)展名姜挺,然后重新賦給filenames列表中的每個元素齿税。
Python里對列表和字符串等的操作十分靈活,name[: -3]返回了一個新的字符串炊豪。它去了name中從開頭到倒數(shù)第四個元素凌箕,-3表示從最后開始的第三個元素,但在提取操作中并不包括-3所表示的那個元素也 不改變變量name本身词渤。
filenames.index(name)返回列表里和name值相同的元素的索引牵舱。這樣我們就可以把新的文件名依次賦給 fienames了。
接著我們就可以把它們輸出到一個文本文件里缺虐,以后粘貼的到別的地 方芜壁。
用out=open ('names.txt','w')打開一個名位out的文件對象,open()函數(shù)在當(dāng)前目錄里新建了一個名位names.txt的文本文件,w表示文 件對象out使用寫模式(Write Mode)慧妄,參數(shù)要用單引號括住顷牌。
open()是內(nèi)建函數(shù)并非os模塊里的函數(shù),因此也不用os.來限定調(diào)用塞淹。
接著又是一個循環(huán)窟蓝,依次將filenames里的每個字符串輸出到out文件對象中,同樣要注意行首的縮進(jìn)饱普。
for name in filenames:
out.write(name+'\n')
out文件對象調(diào)用write方法(函數(shù)),將每次循環(huán)里不同的name的值寫到name.txt文件中运挫。
這個文件我命名為changeName.py,想提取哪個目錄下的文件名套耕,就粘貼到那里運(yùn)行一下谁帕;
當(dāng)然不然不如直接用dos命令那么方便;