1.1 python os.path模組
os.path.abspath(path) #返回絕對路徑
os.path.basename(path) #返迴文件名os.path.commonprefix(list) #返回list(多個路徑)中,所有path共有的最長的路徑。os.path.dirname(path) #返迴文件路徑os.path.exists(path) #路徑存在則返回True,路徑損壞返回Falseos.path.lexists #路徑存在則返回True,路徑損壞也返回Trueos.path.expanduser(path) #把path中包含的"~"和"~user"轉換成使用者目錄os.path.expandvars(path) #根據環境變數的值替換path中包含的”$name”和”${name}”os.path.getatime(path) #返回最後一次進入此path的時間。os.path.getmtime(path) #返回在此path下最後一次修改的時間。os.path.getctime(path) #返回path的大小os.path.getsize(path) #返迴文件大小,如果檔案不存在就返回錯誤os.path.isabs(path) #判斷是否為絕對路徑os.path.isfile(path) #判斷路徑是否為檔案os.path.isdir(path) #判斷路徑是否為目錄os.path.islink(path) #判斷路徑是否為連結os.path.ismount(path) #判斷路徑是否為掛載點()os.path.join(path1[, path2[, ...]]) #把目錄和檔案名稱合成一個路徑os.path.normcase(path) #轉換path的大小寫和斜杠os.path.normpath(path) #規範path字串形式os.path.realpath(path) #返回path的真實路徑os.path.relpath(path[, start]) #從start開始計算相對路徑os.path.samefile(path1, path2) #判斷目錄或檔案是否相同os.path.sameopenfile(fp1, fp2) #判斷fp1和fp2是否指向同一檔案os.path.samestat(stat1, stat2) #判斷stat tuple stat1和stat2是否指向同一個檔案os.path.split(path) #把路徑分割成dirname和basename,返回一個元組os.path.splitdrive(path) #一般用在windows下,返回磁碟機名和路徑組成的元組os.path.splitext(path) #分割路徑,返迴路徑名和副檔名的元組os.path.splitunc(path) #把路徑分割為載入點與檔案os.path.walk(path, visit, arg) #遍曆path,進入每個目錄都調用visit函數,visit函數必須有3個參數(arg, dirname, names),dirname表示目前的目錄的目錄名,names代表目前的目錄下的所有檔案名稱,args則為walk的第三個參數os.path.supports_unicode_filenames #設定是否支援unicode路徑名
1.2 Python os.listdir
在Python os.listdir 中我們可以列出關於dir 裡面的所有的相關檔案與目錄的具體操作方案的介紹,以及我們在實際如何用Python中的os.path.isfile()函數來判斷相關路徑是否為檔案的操作方案,以下是文章的具體介紹。
Python判斷是否為檔案在Python os.listdir 函數判斷某一路徑是否為檔案。其函數原型如下所示。
- os.path.isfile(path)
其參數含義如下。path:要進行判斷的路徑。以下執行個體判斷E:\book\temp是否為檔案。
- >>> import os
- >>> os.path.isfile('E:\\book\\temp')
判斷是否為檔案
- False
表示E:\book\temp不是檔案列出目錄中所有檔案的方法
關鍵字:
- dirimport string, os, sys
- dir = '/var'
- print '----------- no sub dir'
- files = os.listdir(dir)
- for f in files:
- print dir + os.sep + f
- print '----------- all dir'
- for root, dirs, files in os.walk(dir):
- for name in files:
- print os.path.join(root, name)
前面的Python os.listdir 可以列出 dir 裡面的所有檔案和目錄,但不包括子目錄中的內容。os.walk 可以遍曆下面的所有目錄,包括子目錄。
1.3 字串處理
判斷 – 通常返回一個bool值 |
str.isalpha() |
是否只包含文字 |
str.isdecimal() |
是否只包含數字(多語言數字) |
str.isdigit() |
是否只包含數字(0~9) |
str.isnumeric() |
是否只包含數字字元 |
str.isalnum() |
是否只包含文字和數字 |
str.isidentifier() |
是否是合法標識符 |
str.islower() |
是否是小寫 |
str.isupper() |
是否全是大寫 |
str.istitle() |
是否每字首大寫 |
str.isprintable() |
是否只包含可列印字元 |
str.isspace() |
是否只包含空白字元 |
str.startswith(prefix[, start[, end]]) |
是否以prefix開頭 |
str.endswith(suffix[, start[, end]]) |
是否以suffix結尾 |
修飾 – 通常返回一個修飾後的字串 |
str.capitalize() |
返回一個首字母大寫的字串 |
str.title() |
返回每個字首大寫的字串 |
str.expandtabs([tabsize]) |
"\t"轉換成空格 |
str.upper() |
全轉換成大寫 |
str.lower() |
全轉換成小寫 |
str.ljust(width[, fillchar]) |
靠左對齊,右填充 |
str.rjust(width[, fillchar]) |
靠右對齊,左填充 |
str.center(width[, fillchar]) |
置中,兩邊填充 |
str.lstrip([chars]) |
去除左空白或自定字元 |
str.rstrip([chars]) |
去除右空白或自定字元 |
str.strip([chars]) |
去除兩邊空白或自定字元 |
str.swapcase() |
大小寫互轉 |
str.zfill(width) |
左側填充0到指定寬,一般用來修飾數字 |
尋找&&替換 |
str.count(sub[, start[, end]]) |
計算[start, end)間,sub出現次數 |
str.find(sub[, start[, end]]) |
|
str.index(sub[, start[, end]]) |
|
str.rfind(sub[, start[, end]]) |
|
str.rindex(sub[, start[, end]]) |
|
str.replace(old, new[, count]) |
|
拆分&&組合 |
str.join(iterable) |
|
str.partition(sep) |
|
str.rpartition(sep) |
|
str.split([sep[, maxsplit]]) |
|
str.rsplit([sep[, maxsplit]]) |
|
str.splitlines([keepends]) |
|
轉換 |
hex(x) |
|
int([number | string[, base]]) |
|
len(s) |
|
list([iterable]) |
|
oct(x) |
|
ord(c) |
|
repr(object) |
|
reversed(seq) |
|
str([object[, encoding[, errors]]]) |
|
↑TOP↑str.isalpha()
– 是否只包含文字
代碼 |
結果 |
print( "中國abc".isalpha() ) |
True |
print( " ".isalpha() ) |
False |
print( "123".isalpha() ) |
False |
print( "".isalpha() ) |
False |
↑TOP↑str.isdecimal()
– 是否只包含十進位數字,包括多語言數字
代碼 |
結果 |
print( "1234567890".isdecimal() ) |
True |
print( "\u0660".isdecimal() ) |
True |
print( "abc".isdecimal() ) |
False |
print( "".isdecimal() ) |
False |
關於其他語言的數字參見 http://www.fileformat.info/info/unicode/category/Nd/list.htm
↑TOP↑str.isdigit()
– 是否只包含數字(0~9)
代碼 |
結果 |
print( "1234567890".isdigit() ) |
True |
print( "\u0660".isdigit() ) |
True |
print( "abc".isdigit() ) |
False |
print( "".isdigit() ) |
False |
↑TOP↑str.isnumeric()
– 是否只包含數字字元
代碼 |
結果 |
print( "1234567890".isnumeric() ) |
True |
print( "\u2155".isnumeric() ) |
True |
print( "abc".isnumeric() ) |
False |
print( "".isnumeric() ) |
False |
關於數字字元參見 http://www.fileformat.info/info/unicode/category/No/list.htm
↑TOP↑str.isalnum()
– 是否只包含文字和數字
代碼 |
結果 |
print( "中國abc123456\u2155".isalnum() ) |
True |
print( " ".isalnum() ) |
False |
print( "\t".isalnum() ) |
False |
print( "".isalnum() ) |
False |
↑TOP↑str.isidentifier()
– 是否是合法標識符
代碼 |
結果 |
print( "if".isidentifier() ) |
True |
print( "中國".isidentifier() ) |
True |
print( "123".isidentifier() ) |
False |
print( "".isidentifier() ) |
False |
↑TOP↑str.islower()
– 是否是小寫
代碼 |
結果 |
print( "abc".islower() ) |
True |
print( "aBc".islower() ) |
False |
print( "中國".islower() ) |
False |
print( "".islower() ) |
False |
↑TOP↑str.isupper()
– 是否全是大寫
代碼 |
結果 |
print( "HELLO WORLD".istitle() ) |
True |
print( "Hello World".istitle() ) |
False |
print( "世界你好".istitle() ) |
False |
print( "".istitle() ) |
False |
↑TOP↑str.istitle()
– 是否每字首大寫
代碼 |
結果 |
print( "Hello World".istitle() ) |
True |
print( "Hello world".istitle() ) |
False |
print( "hello world".istitle() ) |
False |
print( "".istitle() ) |
False |
↑TOP↑str.isprintable()
– 是否只包含可列印字元
代碼 |
結果 |
print( "a b".isprintable() ) |
True |
print( "".isprintable() ) |
True |
print( "abc\t".isprintable() ) |
False |
print( "abc\n".isprintable() ) |
False |
↑TOP↑str.isspace()
– 是否只包含空白字元
代碼 |
結果 |
print( " ".isspace() ) |
True |
print( "\t\n".isspace() ) |
True |
print( "a b".isspace() ) |
False |
print( "".isspace() ) |
False |
↑TOP↑str.startswith(prefix[,
start[, end]]) – 是否以prefix開頭
代碼 |
結果 |
print( "中國人".startswith("中") ) |
True |
print( "中國人".startswith(("中國","我")) ) |
True |
↑TOP↑str.endswith(suffix[,
start[, end]]) – 是否以suffix結尾
代碼 |
結果 |
print( "中國人".endswith("人") ) |
True |
print( "中國人".endswith(("國人","我")) ) |
True |
↑TOP↑str.capitalize()
– 返回一個首字母大寫的字串
代碼 |
print( "the first sentence. the second sentence.".capitalize() ) |
結果 |
The first sentence. the second sentence. |
↑TOP↑str.title()
– 返回每個字首大寫的字串
代碼 |
print( "this is a title".title() ) |
結果 |
This Is A Title |
↑TOP↑str.expandtabs([tabsize])
– "\t"轉換成空格
代碼 |
"\t".expandtabs(8) |
結果 |
' ' |
↑TOP↑str.upper()
– 全轉換成大寫
代碼 |
print( "abc".upper() ) |
結果 |
ABC |
↑TOP↑str.lower()
– 全轉換成小寫
代碼 |
print( "ABC".upper() ) |
結果 |
abc |
↑TOP↑str.ljust(width[,
fillchar]) – 靠左對齊,右填充
代碼 |
print( "我".ljust(4,"們") ) |
結果 |
我們們們 |
↑TOP↑str.rjust(width[,
fillchar]) – 靠右對齊,左填充
代碼 |
print( "我".rjust(4,"=") ) |
結果 |
===我 |
↑TOP↑str.center(width[,
fillchar]) – 置中,兩邊填充
代碼 |
print( "我是分割線".center(30, "=") ) |
結果 |
============我是分割線============= |
↑TOP↑str.lstrip([chars])
– 去除左空白或自定字元
代碼 |
' spacious '.lstrip() |
結果 |
'spacious ' |
代碼 |
'www.example.com'.lstrip('cmowz.') |
結果 |
'example.com' |
↑TOP↑str.rstrip([chars])
– 去除右空白或自定字元
代碼 |
' spacious '.rstrip() |
結果 |
' spacious' |
代碼 |
'mississippi'.rstrip('ipz') |
結果 |
'mississ' |
↑TOP↑str.strip([chars])
– 去除兩邊空白或自定字元
代碼 |
' spacious '.strip() |
結果 |
'spacious' |
代碼 |
'www.example.com'.strip('cmowz.') |
結果 |
'example' |
↑TOP↑str.swapcase()
– 大小寫互轉
代碼 |
print( "Abc".swapcase() ) |
結果 |
aBC |
↑TOP↑str.zfill(width)
– 左側填充0到指定寬,一般用來修飾數字
代碼 |
print( "15".zfill(8) ) |
結果 |
00000015 |
代碼 |
print( "-15".zfill(8) ) |
結果 |
-0000015 |
↑TOP↑str.count(sub[,
start[, end]]) – 計算[start, end)間,sub出現次數
代碼 |
print( "abababab" .count("abab" ) |
結果 |
2 |
註:非重疊計數,因此結果是2而不是3
1.4 datetime.datetime
擷取目前時間,並通過字串輸出。
格式為:%Y-%m-%d %H:%M:%S'
datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S' )
擷取目前時間,但只保留日期
datetime.datetime.now().date()
將字串轉換為datetime類型
輸入字串格式為:'%Y-%m-%d'
datetime.datetime.strptime(time,'%Y-%m-%d')
print 'start at:',datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f' )
print 'start at:',time.strftime('%Y-%m-%d %H:%M:%S.%f', time.localtime(time.time()))
附錄:
格式化符號匯總
%a 星期幾的簡寫 Weekday name, abbr.
%A 星期幾的全稱 Weekday name, full
%b 月分的簡寫 Month name, abbr.
%B 月份的全稱 Month name, full
%c 標準的日期的時間串 Complete date and time representation
%d 十進位表示的每月的第幾天 Day of the month
%H 24小時制的小時 Hour (24-hour clock)
%I 12小時制的小時 Hour (12-hour clock)
%j 十進位表示的每年的第幾天 Day of the year
%m 十進位表示的月份 Month number
%M 十時製表示的分鐘數 Minute number
%S 十進位的秒數 Second number
%U 第年的第幾周,把星期日做為第一天(值從0到53)Week number (Sunday first weekday)
%w 十進位表示的星期幾(值從0到6,星期天為0)weekday number
%W 每年的第幾周,把星期一做為第一天(值從0到53) Week number (Monday first weekday)
%x 標準的日期串 Complete date representation (e.g. 13/01/08)
%X 標準的時間串 Complete time representation (e.g. 17:02:10)
%y 不帶世紀的十進位年份(值從0到99)Year number within century
%Y 帶世紀部分的十制年份 Year number
%z,%Z 時區名稱,如果不能得到時區名稱則返回Null 字元。Name of time zone
%% 百分比符號