Python中关于文件路径的简单操作 [转]
?? 功能相當于在path目錄下執行dir命令,返回為list類型
?? 舉例:
?? print os.listdir('..')
?? 輸出:
?? [a,b,c,d]
2: os.path.walk(path,visit,arg)
?? path? :是將要遍歷的目錄
?? visit :是一個函數指針,函數圓形為:
???callback(arg,dir,fileList)
???????其中arg為為傳給walk的arg , dir是path下的一個目錄,fileList為dir下的文件和目錄組成的list
?? arg:傳給visit用的,對walk沒有什么作用
?? 舉例:
?? def callback(arg,directory, files):
????? print directory,
????? print files,
????? print arg
????? print '--------------------'
???
?? os.path.walk('.',callback, '123456')
?? 輸出:
?? . ['path0704.py', 'temp', '\xc2\xb7\xbe\xb6\xcf\xe0\xb9\xd8\xd1\xa7\xcf\xb0.txt'] 123456
?? --------------------
?? .\temp ['temp.h', 'temp1'] 123456
?? --------------------
?? .\temp\temp1 ['abc.bmp'] 123456
?? 如果想找到某個目錄下所有文件,只需要在callback里面,在fileList中找出文件,即可
?? 除此之外,還有一個函數可以用那就是os.walk,看10
3:os.path.split(path)
?? path 為一個路徑,
??
?? 輸出,把path分成兩部分,具體看實例:
?? print os.path.split("abc/de.txt")
?? ('abc', 'de.txt')
?? os.path.split("abc")
?? ('', 'abc')
?? print os.path.split("de/abc/de")
?? ('de/abc', 'de')
??
4: os.path.splitext(filename)
?? 把文件名分成文件名稱和擴展名
?? os.path.splitext(abc/abcd.txt)
?? ('abc/abcd', '.txt')
5:? os.path.dirname(path)
??? 把目錄名提出來
??? print os.path.dirname("abc")
????????? #輸出為空
??? print os.path.dirname('abc\def')??
??? abc
6: os.path.basename(filename)
??? 取得主文件名
??? print os.path.basename('abc')
??? abc
??? print os.path.basename('abc.txt')
??? abc
??? print os.path.basename('bcd/abc')
??? abc??? #這個需要注意不包括目錄名稱
??? print os.path.basename('.')
??? .
7:os.mkdir(path, [mode])
?? path為目錄名: 這里有個要求,只能創建一級目錄
?? 比如path為 abc/def? 則當前目錄下必須存在abc 否則失敗
??
8: os.makedirs(path [,mode])
?? 可以創建多級目錄
9:os.remove(path)刪除一個文件,一定是一個文件
?? os.removedirs(path) 刪除一個目錄下所有東西
?? os.rmdir(path) 刪除一個目錄,而且一定要空,否則os.errer
10:os.walk(path)
??? 遍歷path,返回一個對象,他的每個部分都是一個三元組
??? ('目錄x',[目錄x下的目錄list],目錄x下面的文件)
??? 舉例:
??? a =??? os.walk('.')
??? for i in a:
?print i
??? 輸出:
??? ('.', ['abc', 'temp'], ['path0704.py', '\xc2\xb7\xbe\xb6\xcf\xe0\xb9\xd8\xd1\xa7\xcf\xb0.txt'])
??? ('.\\abc', [], ['\xd0\xc2\xbd\xa8 BMP \xcd\xbc\xcf\xf1.bmp'])
??? ('.\\temp', ['temp1'], ['temp.h'])
??? ('.\\temp\\temp1', [], ['abc.bmp'])
11:shutil.copy(src,dst)
??? 把文件src內容拷貝到文件dst中。,目標區域必須可以寫,如果dst存在,則dst被覆蓋
上面的函數基本夠用
其它文件移動操作還請看:shutil模塊:High-level file operations
原文來自:
http://blog.csdn.net/wingSys/archive/2006/07/07/889608.aspx
root_dir?=?r'X:\XXX\XXX';
def?walk(path):
????for?item?in?os.listdir(path):
????????subpath?=?os.path.join(path,?item);
????????mode?=?os.stat(subpath)[stat.ST_MODE];
????????
????????if?stat.S_ISDIR(mode):
????????????if?item==".svn":
????????????????print?"Clean?%s?..."?%?subpath;
????????????????print?"%d?deleted!"?%?purge(subpath);
????????????else:
????????????????walk(subpath);
def?purge(path):
????count?=?0;
????for?item?in?os.listdir(path):
????????subpath?=?os.path.join(path,?item);
????????mode?=?os.stat(subpath)[stat.ST_MODE];
????????if?stat.S_ISDIR(mode):
????????????count?+=?purge(subpath);
????????else:
????????????os.chmod(subpath,?stat.S_IREAD|stat.S_IWRITE);
????????????os.unlink(subpath);
????????????count?+=?1;
????os.rmdir(path);
????count?+=?1;
????return?count;
?????????????????????
????
if?__name__=='__main__':
????walk(root_dir);
借鑒以上代碼轉自:
http://onlypython.group.javaeye.com/group/blog/53926
import?os,?stat;
root_dir?=?r'X:\XX\XX';
def?purge(path):
????count?=?0;
????for?item?in?os.listdir(path):
????????subpath?=?os.path.join(path,?item);
????????mode?=?os.stat(subpath)[stat.ST_MODE];
????????if?stat.S_ISDIR(mode):
????????????count?+=?purge(subpath);
????????else:
????????????os.chmod(subpath,?stat.S_IREAD|stat.S_IWRITE);
????????????os.unlink(subpath);
????????????count?+=?1;
????os.rmdir(path);
????count?+=?1;
????return?count;
def?callback(arg,?directory,?files):
????if?os.path.split(directory)[1]=='.svn':
????????print?directory;
????????#使用os.removedirs()刪不掉
????????print?"Folder?[%s](%d?files)?deleted."?%?(directory,?purge(directory));
????????print?'--------------------';
????
if?__name__=='__main__':
????print?'start';
????os.path.walk(root_dir,?callback,?0);
????print?'complete.';
轉載于:https://www.cnblogs.com/starspace/archive/2008/11/23/1339625.html
總結
以上是生活随笔為你收集整理的Python中关于文件路径的简单操作 [转]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lucene索引
- 下一篇: js对象序列化为json字符串