日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中关于文件路径的简单操作 [转]

發布時間:2023/12/2 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中关于文件路径的简单操作 [转] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1: os.listdir(path)? #path為目錄

?? 功能相當于在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

posted @ 2008-05-08 18:33 Jaypei 閱讀(63) | 評論 (0) |?編輯 Python遞歸刪除.svn文件夾 import?os,?stat;

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中关于文件路径的简单操作 [转]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。