二十捷泞、OS 模塊和 time 模塊

1锁右、os 模塊

OS 模塊(operating system)讶泰,意為操作系統(tǒng)痪署,是 python 處理文件系統(tǒng)的常用模塊兄旬,因?yàn)?python 是跨平臺的领铐,所以使用 os 模塊,不用擔(dān)心操作系統(tǒng)使用什么模塊瓢姻,os 模塊會幫你選擇正確的模塊并調(diào)用莲兢。

OS 模塊中關(guān)于文件/ 目錄常用函數(shù)的使用方法:

函數(shù)名 使用方法
getcwd() 返回當(dāng)前工作目錄
chdir() 改變工作目錄
listdir(path='.') 列舉指定目錄中的文件名('.' 表示當(dāng)前目錄改艇,'..' 表示上一級目錄)
mkdir() 創(chuàng)建目錄(文件夾),如該目錄存在摔桦,拋出 FileExistsError 異常
makedirs() 創(chuàng)建多層目錄邻耕,如果存在燕鸽,拋出異常
remove() 刪除文件
rmdir(path) 刪除單層目錄啊研,如果該目錄非空則拋出異常
removedirs(path) 刪除多層目錄,遇到非空拋出異常
rename(old削解,new) 將文件 old 重命名為 new
system(command) 運(yùn)行系統(tǒng)的 shell 命令

1.1沟娱、getcwd()

獲取當(dāng)前工作目錄:

>>> import os
>>> os.getcwd()
'C:\\Users\\hj\\AppData\\Local\\Programs\\Python\\Python36-32'

1.2济似、chdir(path)

改變當(dāng)前工作目錄盏缤,如切換到 E 盤(需要注意的是蛾找,windows 系統(tǒng)的文件路徑是雙反斜杠:\)

# 改變目錄時赵誓,可以先查看當(dāng)前工作目錄俩功,再改變,最后查看是否修改成功
>>> os.getcwd()
'C:\\Users\\hj\\AppData\\Local\\Programs\\Python\\Python36-32'
>>> os.chdir('E:\\')
>>> os.getcwd()
'E:\\'

1.3熬甫、listdir(path='.')

可以幫助知道當(dāng)前工作目錄下有哪些文件和子目錄蔓罚,它會幫你列舉出來豺谈,path 參數(shù)用于指定列舉的目錄,默認(rèn)值為 ‘.’ 厂榛,代表當(dāng)前目錄击奶,也可以使用 '..' 责掏,代表上一層目錄:

# 我的 D 盤目錄下有個 pics 的文件夾换衬,文件夾中有個 a 文件夾和 test.txt的文件,而 a 文件夾中有個 b 文件夾和test_0的文件
>>> os.chdir('D:\\pics\\a\\')
>>> os.getcwd()
'D:\\pics\\a'
>>> os.listdir()         # 當(dāng)前目錄下的子目錄和文件
['b', 'test_0.txt']
>>> os.listdir(path='..')  # 上一級目錄下的子目錄和文件
['a', 'test.txt']

1.4、mkdir(path)

創(chuàng)建單層目錄(即一個文件夾)术幔,如果該目錄存在湃密,則拋出 FileExistsError 的異常:

>>> os.mkdir('new_file')
>>> os.listdir()
['b', 'new_file', 'test_0.txt']

>>> os.mkdir('b')
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    os.mkdir('b')
FileExistsError: [WinError 183] 當(dāng)文件已存在時,無法創(chuàng)建該文件忿危。: 'b'

1.5没龙、makedirs(path)

創(chuàng)建多層目錄:

os.makedirs('a\\b\\c')  # 表示創(chuàng)建了個 a 目錄硬纤,里面包含 b 目錄,b 目錄里包含 c 目錄

1.6洼裤、刪除目錄和文件

用于刪除指定的文件溪王,不能刪除目錄:

# 當(dāng)前工作目錄為 D:\\file莹菱,file 目錄下有 文件夾a 和 d 以及 文件 test.txt,a目錄下有b桥狡,b下有c
>>> os.getcwd()
'D:\\file'
>>> os.listdir()
['a', 'd' ,'test.txt']
>>> os.remove('test.txt')   # 刪除文件 test.txt

>>> os.rmdir('d')           # 刪除 文件夾 d

>>> os.removedirs('a\\b\\c')  # 刪除多層目錄 a\\b\\c
>>> os.listdir()     # file 文件為空
[]

1.7裹芝、rename(old娜汁,new)

重命名文件或文件夾

>>> os.listdir()
['a', 'test.txt']
>>> os.rename('a', 'b')    # 重命名文件夾
>>> os.rename('test.txt', 'test_0.txt')        # 重命名文件
>>> os.listdir()
['b', 'test_0.txt']

1.8掐禁、system(command)

每種系統(tǒng)都會提供一些小工具,system()函數(shù)可以使用這些工具:

# calc 是 windows 系統(tǒng)的自帶計算器
>>> os.system('calc')

1.9缕允、walk(top)

walk()函數(shù)障本,可以遍歷 top 參數(shù)指定路徑下的所有子目錄,并將結(jié)果返回一個三元組(路徑案训,[包含目錄]粪糙,[包含文件]):

# 目錄結(jié)構(gòu)為蓉冈,b 目錄下有 目錄c 和文件 test.txt洒擦,目錄c 下有 文件 test_0.txt,沒有文件夾
>>> for i in os.walk('b'):
    print(i)

    
('b', ['c'], ['test.txt'])   # b 目錄下有 目錄c 和文件 test.txt
('b\\c', [], ['test_0.txt'])  # 目錄c 下有 文件 test_0.txt秦踪,沒有文件夾

2掸茅、os.path 模塊

os.path 模塊中關(guān)于路徑常用函數(shù)使用方法

函數(shù)名 使用方法
basename(path) 去掉目錄路徑昧狮,單獨(dú)返回文件名
dirname(path) 去掉文件名逗鸣,單獨(dú)返回目錄路徑
join(path1[,path2[透葛,...]]) 將 path1 和 path 2 各部分組合成一個路徑名
split(path) 分割文件名和路徑僚害,返回(f_path繁调,f_name)元組
splitext(path) 分離文件名與拓展名蹄胰,返回(f_path,f_name)元組
getsize(file) 返回指定文件的尺寸寒随,單位是字節(jié)
getatime(file) 返回指定文件最近的訪問時間
getctime(file) 返回指定文件的創(chuàng)建時間
getmtime(file) 返回指定文件的最新修改時間
以下函數(shù)返回 True 或 False
exists(path) 判斷指定路徑(目錄或文件)是否存在
isabs(path) 判斷指定路徑是否為絕對路徑
isdir(path) 判斷指定路徑是否存在且是一個目錄
isfile(path) 判斷指定路徑是否存在且是一個文件
islink(path) 判斷指定路徑是否存在且是一個符號鏈接
ismount(path) 判斷指定路徑是否存在且是一個掛載點(diǎn)
samefile(path1妻往,path2) 判斷path1 和 path2 兩個路徑是否指向同一個文件

2.1讯泣、basename(path)和dirname(path)

分別用于獲得文件名和路徑名:

>>> os.path.dirname('file\\b\\test.txt')   # 獲得路徑名
'file\\b'
>>> os.path.basename('file\\b\\test.txt')  # 獲得文件名
'test.txt'

2.2阅悍、join(path1[节视,path2[,....]])

join()函數(shù)跟 BIF 的那個 join()函數(shù)不同霍掺,它是用于將路徑名和文件名組合成一個完整的路徑:

>>> os.path.join('C:\\', 'csv', 'test.csv')
'C:\\csv\\test.csv'

2.3杆烁、split(path)和splitext(path)

  • split(path)函數(shù):

將 path 分隔成目錄和文件名的二元組(如果完全使用目錄简卧,那么它會將最后一個目錄作為文件名分離举娩,且不會判斷文件或者目錄存在)。

>>> path = 'C:\Python27\Lib\site-packages\myLibrary'
>>> os.path.split(path)
('C:\\Python27\\Lib\\site-packages', 'myLibrary')

>>> os.path.split('a\\b\\test.txt')
('a\\b', 'test.txt')
  • splitext(path):

將 path 中的文件分割成文件名和拓展名的二元組智玻。

>>> path = 'C:\Python27\Lib\site-packages\myLibrary'
>>> os.path.splitext(path)
('C:\\Python27\\Lib\\site-packages\\myLibrary', '')

>>> os.path.splitext('a\\b\\text.txt')
('a\\b\\text', '.txt')

2.4尚困、getsize(file)

用于獲取文件的尺寸事甜,返回值以字節(jié)為單位:

# 注意滔韵,是獲取文件的尺寸陪蜻,而且文件必須存在
>>> os.getcwd()
'D:\\file'
>>> os.listdir()
['b', 'test_0.txt']

>>> os.path.getsize('test_0.txt')
4

2.5、獲取文件的最近訪問滋将、創(chuàng)建和修改時間

getatime(file)随闽、getctime(file)和 getmtime(file),分別用于獲得文件的最近訪問時間蛾扇、創(chuàng)建時間和修改時間镀首,返回值為浮點(diǎn)型的秒數(shù)鼠次,可用 time 模塊的 gmtime()或 localtime()函數(shù)換算。

  1. getatime(file):獲得文件的最近訪問時間竖瘾。
import time
>>> temp = time.localtime(os.path.getatime('test_0.txt'))
>>> print('test_0.txt 被訪問的時間是:', time.strftime('%d %b %Y %H: %M: %S', temp))
test_0.txt 被訪問的時間是: 18 Dec 2017 17: 05: 44
  1. getctime(file):獲得文件的創(chuàng)建時間捕传。
>>> temp = time.localtime(os.path.getctime('test_0.txt'))
>>> print('test_0.txt 被訪問的時間是:', time.strftime('%d %b %Y %H: %M: %S', temp))
test_0.txt 被訪問的時間是: 18 Dec 2017 17: 05: 44
  1. getmtime(file):獲得文件的修改時間
>>> temp = time.localtime(os.path.getmtime('test_0.txt'))
>>> print('test_0.txt 被訪問的時間是:', time.strftime('%d %b %Y %H: %M: %S', temp))
test_0.txt 被訪問的時間是: 19 Dec 2017 17: 09: 47

2.6庸论、判斷

>>> os.path.exists('test_0.txt')     # 判斷目錄或文件是否存在
True

>>> os.path.isabs('D:\\file\\test_0.txt')   # 判斷指定路徑是否為絕對路徑
True

>>> os.path.isdir('D:\\file\\test_0.txt')   # 判斷指定路徑是否為目錄
False

>>> os.path.isdir('D:\\file\\b')    
True

>>> os.path.isfile('D:\\file\\test_0.txt')   # 判斷指定路徑是否為文件
True

>>> os.path.islink('D:\\file\\b')    # 判斷指定路徑是否存在一個符號鏈接
False

>>> os.path.ismount('D:\\file\\b')   # 判斷指定路徑是否存在一個掛載點(diǎn)
False

>>> os.path.samefile('D:\\file\\b', 'D:\\file\\')  # 判斷 path1 和 path2 兩個路徑是否指向同一文件
False

3聂示、pickle 模塊

在保存文本時簇秒,都是以字符串的形式存放趋观,如果要取出數(shù)字,那么必須現(xiàn)將字符串轉(zhuǎn)換為數(shù)字编曼,然而要保存的數(shù)據(jù)像列表掐场、字典甚至是類的實(shí)例這些更復(fù)雜的數(shù)據(jù)類型時,普通的文件操作就變得不那么好用了萍膛。

pickle 模塊可以將任何 python 對象都轉(zhuǎn)換為二進(jìn)制形式存儲卦羡,這個過程稱為 pickling(泡菜)麦到;從二進(jìn)制轉(zhuǎn)換為對象的過程稱為 unpickling瓶颠。

# 將文件 my_list 存儲到 my_list_path 中刺桃,后綴名隨意瑟慈,不過最好為(.pkl 或 .pickle)
import pickle

my_list = [123, 3.14, '你好', [456,78]]
my_list_path = 'C:\\Users\\hj\\Desktop\\2\\my_list.pkl'
with open(my_list_path, 'wb') as f:   # 以二進(jìn)制形式保存
    pickle.dump(my_list, f)   # 存放

在電腦路徑 my_list_path 中會創(chuàng)建一個 my_list.pkl 的文件葛碧,以記事本形式打開,顯示為亂碼(二進(jìn)制)蔗衡。

# 使用時绞惦,以二進(jìn)制模式把文件打開洋措,再以 load 把數(shù)據(jù)加載出來
import pickle

my_list_path = 'C:\\Users\\hj\\Desktop\\2\\my_list.pkl'
with open(my_list_path, 'rb') as f:     # b 是以二進(jìn)制形式
    my_list = pickle.load(f)
    print(my_list)
--------------------------------

[123, 3.14, '你好', [456, 78]]

4菠发、time 模塊

4.1雷酪、python 中時間的表現(xiàn)形式

在 python 中與時間有關(guān)的模塊有:time、datetime以及 calendar蔗怠,學(xué)會計算時間寞射,對程序的調(diào)優(yōu)非常重要,可以在程序中打時間戳引矩,來具體判斷程序中哪一塊耗時最多旺韭,從而找到程序調(diào)優(yōu)的重心處掏觉。

  1. python 中澳腹,通常有這幾種方式表示時間:時間戳、格式化的時間字符串沥邻、元組(struct_time 共九種元素)唐全,由于 time 模塊主要是調(diào)用 C 庫實(shí)現(xiàn)的迁沫,所有在不同平臺可能會有所不同集畅。
  2. 時間戳(timestamp)的方式:時間戳表示是從 1970年1月1號 00:00 開始到現(xiàn)在按秒計算的偏移量,查看 type(time.time() )的返回值類型祷愉,可以看出是 float類型二鳄,返回時間戳的函數(shù)主要有 time()订讼、clock()扇苞。
  3. UTC(世界協(xié)調(diào)時),格林威治天文時間程拭,即世界標(biāo)準(zhǔn)時間棍潘,中國為 UTC + 8恃鞋,DST 夏令時。
  4. 元組方式:struct_time 元組共有 9 個元素亦歉,返回 struct_time 的函數(shù)主要有 gmtime()恤浪、localtime()、strptime()肴楷。
>>> import time
>>> ls = time.localtime()
>>> ls
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=19, tm_hour=22, tm_min=17, tm_sec=50, tm_wday=1, tm_yday=353, tm_isdst=0)
  • tm_year :年
  • tm_mon :月(1-12)
  • tm_mday :日(1-31)
  • tm_hour :時(0-23)
  • tm_min :分(0-59)
  • tm_sec :秒(0-59)
  • tm_wday :星期幾(0-6,0表示周日)
  • tm_yday :一年中的第幾天(1-366)
  • tm_isdst :是否是夏令時(默認(rèn)為-1)
# 因?yàn)樗窃M资锰,那么它就遵循元組的特性,索引阶祭、切片等
>>> ls[0]
2017
>>> ls.tm_year
2017

4.2直秆、time 模塊中常用函數(shù)

4.2.1濒募、time.time()

返回當(dāng)前時間的時間戳

>>> time.time()
1513865956.2554889
# 對時間戳取整
>>> int(time.time())
1513865973

4.2.2、time.localtime([secs])

將一個時間戳轉(zhuǎn)換為當(dāng)前時區(qū)的 struct_time圾结,即數(shù)據(jù)數(shù)組格式的時間

sec:轉(zhuǎn)換為 time.struct_time 類型的對象的秒數(shù)

如果 secs 為提供瑰剃,則以當(dāng)前時間為準(zhǔn)(即默認(rèn)調(diào)用 time.time())

# 為給定參數(shù)
>>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=21, tm_hour=22, tm_min=25, tm_sec=18, tm_wday=3, tm_yday=355, tm_isdst=0)

# 給定參數(shù)
>>> time.localtime(1440337405.85)
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=23, tm_hour=21, tm_min=43, tm_sec=25, tm_wday=6, tm_yday=235, tm_isdst=0)

4.2.3、time.gmtime([secs])

將一個時間戳轉(zhuǎn)換為UTC時區(qū)的struct_time
time.gmtime() 函數(shù)將一個時間戳轉(zhuǎn)換為UTC時區(qū)(0時區(qū))的struct_time筝野,可選的參數(shù)sec表示從1970-1-1 00:00:00以來的秒數(shù)晌姚。其默認(rèn)值為time.time(),函數(shù)返回time.struct_time類型的對象歇竟。(struct_time是在time模塊中定義的表示時間的對象)挥唠。
如果secs參數(shù)未提供,則以當(dāng)前時間為準(zhǔn)焕议。

>>> import time
>>> time.gmtime()
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=22, tm_hour=1, tm_min=48, tm_sec=3, tm_wday=4, tm_yday=356, tm_isdst=0)
>>> time.gmtime(1440337405.85)
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=23, tm_hour=13, tm_min=43, tm_sec=25, tm_wday=6, tm_yday=235, tm_isdst=0)

4.2.4宝磨、time.mktime(t)

將一個 struct_time 轉(zhuǎn)換為時間戳

time.mktime() 函數(shù)執(zhí)行與gmtime(), localtime()相反的操作,它接收struct_time對象作為參數(shù),返回用秒數(shù)表示時間的浮點(diǎn)數(shù)盅安。
如果輸入的值不是一個合法的時間唤锉,將觸發(fā) OverflowError 或 ValueError

# t 結(jié)構(gòu)化的時間或完整的 9位元組元素
>>> time.mktime(time.localtime())
1513907454.0

4.2.5、time.sleep(secs)

線程推遲指定的時間運(yùn)行别瞭,線程睡眠指定時間窿祥,單位為秒

# 睡眠 10 秒
time.sleep(10)

4.2.6、time.clock()

這個函數(shù)蝙寨, 函數(shù)以浮點(diǎn)數(shù)計算的秒數(shù)返回當(dāng)前的CPU時間晒衩。用來衡量不同程序的耗時嗤瞎,比time.time()更有用。在不同的系統(tǒng)上含義不同浸遗。在 UNIX 系統(tǒng)上猫胁,它返回的是“進(jìn)程時間”,它是用秒表示的浮點(diǎn)數(shù)(時間戳)跛锌。而在Windows中弃秆,第一次調(diào)用,返回的是進(jìn)程運(yùn)行時實(shí)際時間髓帽。而第二次之后的調(diào)用是自第一次調(diào)用以后到現(xiàn)在的運(yùn)行時間菠赚。

  • (1)在第一次調(diào)用的時候,返回的是程序運(yùn)行的實(shí)際時間郑藏;
  • (2)第二次之后的調(diào)用衡查,返回的是自第一次調(diào)用后,到這次調(diào)用的時間間隔在win32系統(tǒng)下,這個函數(shù)返回的是真實(shí)時間(wall time)必盖,而在Unix/Linux下返回的是CPU時間
import  time

def procedure():
    time.sleep(3)


time1 = time.clock()

procedure()
print(time.clock() - time1, 'seconds process time!')

time2 = time.time()
procedure()
print(time.time() - time2, 'seconds wall time!')
------------------------------------------------------------------

3.0008666269000823 seconds process time!
3.0008370876312256 seconds wall time!

4.2.7拌牲、time.asctime([t])

把一個表示時間的元組或者 struct_time 表示為 ‘Sun Aug 23 14:31:59 2015’ 這種形式,如果沒有參數(shù)給定歌粥,那么將會使用 time.local() 作為參數(shù)傳入塌忽。

>>> time.asctime(time.gmtime())
'Fri Dec 22 02:20:36 2017'

4.2.8、time.ctime([secs])

將一個時間戳(按秒計算的浮點(diǎn)數(shù))轉(zhuǎn)換為 time.asctime()的形式失驶,如果未指定參數(shù)土居,將會默認(rèn)使用 time.time(),作用相當(dāng)于 time.asctime(time.localtime(secs)嬉探。

# sec 要轉(zhuǎn)換為字符串時間的秒數(shù)
>>> time.ctime(1440338541.0)
'Sun Aug 23 22:02:21 2015'
>>> time.ctime()
'Fri Dec 22 10:23:32 2017'

4.2.9擦耀、time.strftime(format [, t])

返回字符串表示的當(dāng)?shù)貢r間。
把一個代表時間的元組或者struct_time(如由time.localtime()和time.gmtime()返回)轉(zhuǎn)化為格式化的時間字符串涩堤,格式由參數(shù)format決定眷蜓。如果未指定,將傳入time.localtime()胎围。如果元組中任何一個元素越界账磺,就會拋出ValueError的異常。函數(shù)返回的是一個可讀表示的本地時間的字符串痊远。

  • format :格式化字符串
  • t:可選參數(shù)是一個 struct_time 對象

時間字符串支持的格式符號:(區(qū)分大小寫)

%a  本地星期名稱的簡寫(如星期四為Thu)      
%A  本地星期名稱的全稱(如星期四為Thursday)      
%b  本地月份名稱的簡寫(如八月份為agu)    
%B  本地月份名稱的全稱(如八月份為august)       
%c  本地相應(yīng)的日期和時間的字符串表示(如:15/08/27 10:20:06)       
%d  一個月中的第幾天(01 - 31)  
%f  微妙(范圍0.999999)    
%H  一天中的第幾個小時(24小時制垮抗,00 - 23)       
%I  第幾個小時(12小時制,0 - 11)       
%j  一年中的第幾天(001 - 366)     
%m  月份(01 - 12)    
%M  分鐘數(shù)(00 - 59)       
%p  本地am或者pm的相應(yīng)符      
%S  秒(00 - 61)    
%U  一年中的星期數(shù)碧聪。(00 - 53星期天是一個星期的開始冒版。)第一個星期天之    前的所有天數(shù)都放在第0周。     
%w  一個星期中的第幾天(0 - 6逞姿,0是星期天)    
%W  和%U基本相同辞嗡,不同的是%W以星期一為一個星期的開始捆等。    
%x  本地相應(yīng)日期字符串(如15/08/01)     
%X  本地相應(yīng)時間字符串(如08:08:10)     
%y  去掉世紀(jì)的年份(00 - 99)兩個數(shù)字表示的年份       
%Y  完整的年份(4個數(shù)字表示年份)
%z  與UTC時間的間隔(如果是本地時間,返回空字符串)
%Z  時區(qū)的名字(如果是本地時間续室,返回空字符串)       
%%  ‘%’字符  
>>> import time
>>> ls = time.localtime()
>>> ls
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=22, tm_hour=10, tm_min=29, tm_sec=24, tm_wday=4, tm_yday=356, tm_isdst=0)
>>> time.strftime('%Y-%m-%d  %H:%M:%S', ls)
'2017-12-22  10:29:24'
import  time
from datetime import datetime

# 獲取當(dāng)前時間的時分秒
print(time.strftime('%H:%M:%S'))
10:33:36

print(time.strftime('%y-%m-%d'))     # 獲取當(dāng)前時間的年月日 

t = datetime.now()                 # 格式符實(shí)例
print(t)

print(t.strftime('%a'))            # 當(dāng)前時間的星期簡寫
print(t.strftime('%A'))            # 當(dāng)前時間的星期全寫
print(t.strftime('%B'))            # 當(dāng)前時間的月份全寫
----------------------

17-12-22
2017-12-22 10:42:49.912259
Fri
Friday
December

4.2.10栋烤、time.striptime(string [,format])

將格式字符串轉(zhuǎn)換成 struct_time

該函數(shù)是time.strftime()函數(shù)的逆操作。time strptime() 函數(shù)根據(jù)指定的格式把一個時間字符串解析為時間元組挺狰。所以函數(shù)返回的是struct_time對象明郭。

>>> stime = "2015-08-24 13:01:30"  # 創(chuàng)建一個時間字符串變量 stime
# 通過strptime()函數(shù)將 stime轉(zhuǎn)換為 struct_time形式
>>> formattime = time.strptime(stime,"%Y-%m-%d %H:%M:%S")
>>> formattime
time.struct_time(tm_year=2015, tm_mon=8, tm_mday=24, tm_hour=13, tm_min=1, tm_sec=30, tm_wday=0, tm_yday=236, tm_isdst=-1)
# 遍歷返回的時間元組序列
>>> for i in formattime:
    print(i, end=' ')

    
2015 8 24 13 1 30 0 236 -1 

注意在使用strptime()函數(shù)將一個指定格式的時間字符串轉(zhuǎn)化成元組時,參數(shù)format的格式必須和string的格式保持一致丰泊,如果string中日期間使用“-”分隔薯定,format中也必須使用“-”分隔,時間中使用冒號“:”分隔瞳购,后面也必須使用冒號分隔话侄,否則會報格式不匹配的錯誤。

http://blog.csdn.net/SeeTheWorld518/article/details/48314501

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末学赛,一起剝皮案震驚了整個濱河市年堆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盏浇,老刑警劉巖嘀韧,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缠捌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)译蒂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門曼月,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柔昼,你說我怎么就攤上這事哑芹。” “怎么了捕透?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵聪姿,是天一觀的道長。 經(jīng)常有香客問我乙嘀,道長末购,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任虎谢,我火速辦了婚禮盟榴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘婴噩。我一直安慰自己擎场,他們只是感情好羽德,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迅办,像睡著了一般宅静。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上站欺,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天姨夹,我揣著相機(jī)與錄音,去河邊找鬼镊绪。 笑死匀伏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蝴韭。 我是一名探鬼主播够颠,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼榄鉴!你這毒婦竟也來了履磨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤庆尘,失蹤者是張志新(化名)和其女友劉穎剃诅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驶忌,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡矛辕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了付魔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聊品。...
    茶點(diǎn)故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖几苍,靈堂內(nèi)的尸體忽然破棺而出翻屈,到底是詐尸還是另有隱情,我是刑警寧澤妻坝,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布伸眶,位于F島的核電站,受9級特大地震影響刽宪,放射性物質(zhì)發(fā)生泄漏厘贼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一圣拄、第九天 我趴在偏房一處隱蔽的房頂上張望涂臣。 院中可真熱鬧,春花似錦、人聲如沸赁遗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岩四。三九已至哭尝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剖煌,已是汗流浹背材鹦。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耕姊,地道東北人桶唐。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像茉兰,于是被迫代替她去往敵國和親尤泽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評論 2 361