python os.path模組/Python os.listdir/字串處理/python 時間datetime.datetime

來源:互聯網
上載者:User
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 函數判斷某一路徑是否為檔案。其函數原型如下所示。

 
  1. os.path.isfile(path) 

其參數含義如下。path:要進行判斷的路徑。以下執行個體判斷E:\book\temp是否為檔案。

 
  1. >>> import os  
  2. >>> os.path.isfile('E:\\book\\temp')   

判斷是否為檔案

 
  1. False  

表示E:\book\temp不是檔案列出目錄中所有檔案的方法

關鍵字:

 
  1. dirimport string, os, sys  
  2. dir = '/var' 
  3. print '----------- no sub dir'  
  4. files = os.listdir(dir)  
  5. for f in files:  
  6. print dir + os.sep + f  
  7. print '----------- all dir'  
  8. for root, dirs, files in os.walk(dir):  
  9. for name in files:  
  10. 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
%% 百分比符號

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.