python 文件與目錄操作
2020-02-23 04:42:21
供稿:網友
1)os.path
1.1 os.path.isabs(path) 是否是絕對路徑
1.2 os.path.isfile(path)
1.3 os.path.isdir(path)
1.4 os.path.islink(path) 是否是鏈接;但如果系統不支持鏈接,返回False
1.5 os.path.ismount(path) 是否為驅動器;但是很不幸的是在python 3.0中這是個不能運行的函數。
原函數如下:
# Is a path a mount point? Either a root (with or without drive letter)
# or an UNC path with at most a / or / after the mount point.
def ismount(path):
"""Test whether a path is a mount point (defined as root of drive)"""
unc, rest = splitunc(path)
seps = _get_bothseps(p)
if unc:
return rest in p[:0] + seps
p = splitdrive(path)[1]
return len(p) == 1 and p[0] in seps
其錯誤之處是顯而易見的。不知道這個函數為什么這么寫,在windows平臺,可以如下完成該功能
def ismount(path):
p = splitdrive(path)[1]
if len(p) > 0:
return(False)
else:
return(True)
其他平臺沒有對應的機器,不知道具體情形。
1.6 os.path.abspath(path) 返回絕對路徑
1.7 os.path.dirname(path)
1.8 os.path.exists(path)
1.9 os.path.lexists(path) 和exists函數一樣
1.10os.path.getsize(path)
1.11os.path.getctime(path) 返回浮點數的系統時間,在類Unix系統上是文件最近更改的時間,
在Windows上是文件或目錄的創建時間
1.12os.path.getmtime(path) 文件或目錄最后更改的時間
1.13os.path.getatime(path) 文件或目錄最后存取的時間
1.14os.path.samefile(path1,path2) 如果2個路徑指向同樣的文件或目錄,返回True(Windows上不可用)
1.15os.path.split(path) 分割路徑,如果path是目錄,返回[parentName, dirName];
如果path是文件,返回[dirName, fileName]
1.16os.path.splitext(path) 分割路徑,如果path是目錄,返回[parentName, ''];
如果path是文件,返回[dirName+fileName, 文件后綴]
2)fileinput
簡單使用
import file
input for line in fileinput.input():
process(line)
2.1 fileinput.input([files[, inplace[, backup[,mode[,openhook]]]]])
創建一個fileinput的實例,如果files為空,則指向控制臺獲得輸入;如果file為'-',同樣轉向控制臺獲得輸入。
默認情況,文件以text mode打開,如果需要其他格式,則需要指定。
2.2 fileinput.filename() #只有當讀入第一行之后,該值才被賦值
2.3 fileinput.fileno()
2.4 fileinput.lineno()
2.5 fileinput.filelineno()
2.6 fileinput.isfirstline()
2.7 fileinput.isstdin()
2.8 fileinput.nextfile()
2.9 fileinput.close()
3)glob
可以使用簡單的方法匹配某個目錄下的所有子目錄或文件,用法也很簡單。
3.1 glob.glob(regression) 返回一個列表
3.2 glob.iglob(regression) 返回一個遍歷器
這個模塊簡單好用,強力推薦。
4)linecache
看名字就知道了,屬于緩存類的