! /usr/bin/python
def mod(filename):
if filename.endswith(".c"):
filename = filename[:filename.index(".c")]+".java"
return filename
else:
return 0
def main():
import subprocess
tmp = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE)
string = tmp.stdout.read().strip()
stringlist = string.splitlines()
for line in stringlist:
final_line = string.split()[-1]
modify_line = mod(final_line)
if modify_line != 0:
subprocess.call(['mv',final_line,modify_line])
if __name__ == "__main__":
main()
使用subprocess.call可以解決問題,有時直接使用os.listdir及其他方法也可以很快解決問題鑑於此,此腳本還可以再次修改。
****************************************
[Solution 2]
2013.11.23 modified
os.listdir
os.path.splitext
os.rename
#! /user/bin/python
import os
filelist = os.listdir("./")
for f in filelist:
if os.path.splitext(f)[1] == ".c":
os.rename(f,"%s.%s" % (os.path.splitext(f)[0],"java"))
另外,os.listdir可以用glob來取代
import glob
filelist = glob.glob("./*.c")
glob的作用會將目錄一起打印出來//os.listdir 沒有地址