2020-08-07 計(jì)算機(jī)的編碼和文件讀寫

【編碼】

編碼的本質(zhì)就是讓只認(rèn)識0和1的計(jì)算機(jī)几晤,能夠理解我們?nèi)祟愂褂玫恼Z言符號,并且將數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制進(jìn)行存儲和傳輸扑媚。

這種從人類語言到計(jì)算機(jī)語言轉(zhuǎn)換的形式饵筑,就叫做編碼表埃篓,它讓人類語言和計(jì)算機(jī)語言能夠一一對應(yīng)起來。

【二進(jìn)制】

以此類推根资,當(dāng)有八座烽火臺的時候架专,我們就能表示2的8次方同窘,也就是256種狀態(tài),它由8個0或1組成部脚。

你的手機(jī)“流量”想邦,就是這么計(jì)算的:

而百兆寬帶,下載速度最多能達(dá)到十多兆委刘,是因?yàn)檫\(yùn)營商的帶寬是以比特每秒為單位的丧没,比如100M就是100Mbit/s。

而我們澄疲看到的下載速度KB卻是以字節(jié)每秒為單位顯示的呕童,1byte = 8bit,所以運(yùn)營商說的帶寬得先除以8淆珊,你的百兆寬帶下載速度夺饲,也就是十幾兆了。

【編碼表】

具體用哪些二進(jìn)制數(shù)字表示哪個符號施符,理論上每個人都可以有自己的一套規(guī)則(這就叫編碼)往声。

但大家如果想要互相溝通而不造成混亂,就必須使用相同的編碼規(guī)則戳吝。如果使用了不同的編碼規(guī)則浩销,那就會彼此讀不懂,這就是“亂碼”的由來听哭。

一開始慢洋,是美國首先出臺了ASCII編碼(讀音:/??ski/),統(tǒng)一規(guī)定了常用符號用哪些二進(jìn)制數(shù)來表示欢唾。

因?yàn)橛⑽淖帜浮?shù)字再加上其他常用符號粉捻,也就100來個礁遣,因此使用7個比特位(最多表示128位)就夠用了,所以一個字節(jié)中被剩下的那個比特位就被默認(rèn)為0肩刃。

再后來呢祟霍,這套編碼表傳入歐洲,才發(fā)現(xiàn)這128位不夠用啊盈包。比如說法語字母上面還有注音符沸呐,這個怎么區(qū)分?得呢燥!把最后一個比特位也編進(jìn)來吧崭添。因此歐洲普遍使用一個全字節(jié)(8個比特位)進(jìn)行編碼,最多可表示256位叛氨,至此呼渣,一個字節(jié)就用滿了棘伴!

但是前面的狀態(tài)0-127位可以共用,但從狀態(tài)128到255這一段的解釋就完全亂套了屁置,比如135在法語焊夸,希伯來語,俄語編碼中完全是不同的符號蓝角。

當(dāng)計(jì)算機(jī)漂洋過海來到中國后,問題又來了使鹅,計(jì)算機(jī)完全不認(rèn)識博大精深的中文揪阶,當(dāng)然也沒法顯示中文;而且一個字節(jié)的256位都被占滿了并徘,但中國有10萬多個漢字遣钳,256位連塞牙縫都不夠啊。

于是中國科學(xué)家自力更生麦乞,重寫了一張編碼表蕴茴,也就是GB2312,它用2個字節(jié)姐直,也就是16個比特位倦淀,來表示絕大部分(65535個)常用漢字。后來声畏,為了能顯示更多的中文撞叽,又出臺了GBK標(biāo)準(zhǔn)。

不僅中國插龄,其他國家也都搞出自己的一套編碼標(biāo)準(zhǔn)愿棋,這樣的話地球村村民咋溝通?日本人發(fā)封email給中國人均牢,兩邊編碼表不同糠雨,顯示的都是亂碼

為了溝通的便利徘跪,Unicode(萬國碼)應(yīng)運(yùn)而生甘邀,這套編碼表將世界上所有的符號都納入其中。每個符號都有一個獨(dú)一無二的編碼垮庐,現(xiàn)在Unicode可以容納100多萬個符號松邪,所有語言都可以互通,一個網(wǎng)頁上也可以顯示多國語言哨查。

看起來皆大歡喜逗抑。但是!問題又來了,自從英文世界吃上了Unicode這口大鍋飯锋八,為遷就一些占用字節(jié)比較多的語言浙于,英文也要跟著占兩個字節(jié)。比如要存儲A挟纱,原本00010001就可以了羞酗,現(xiàn)在偏得用兩個字節(jié):00000000 00010001才行,這樣對計(jì)算機(jī)空間存儲是種極大的浪費(fèi)紊服!

基于這個痛點(diǎn)檀轨,科學(xué)家們又提出了天才的想法:UTF-8(8-bit Unicode Transformation Format)。它是一種針對Unicode可變長度字符編碼欺嗤,它可以使用1~4個字節(jié)表示一個符號参萄,根據(jù)不同的符號而變化字節(jié)長度,而當(dāng)字符在ASCII碼的范圍時煎饼,就用一個字節(jié)表示讹挎,所以UTF-8還可以兼容ASCII編碼

UnicodeUTF-8這種曖昧的關(guān)系一言以蔽之:Unicode是內(nèi)存編碼的規(guī)范吆玖,而UTF-8是如何保存和傳輸U(kuò)nicode的手段筒溃。

2、8沾乘、16怜奖,分別是2的1次方、3次方翅阵、4次方歪玲。這一點(diǎn)使得三種進(jìn)制之間可以非常直接地互相轉(zhuǎn)換。

8進(jìn)制是用0掷匠,1滥崩,2,3讹语,4钙皮,5,6募强,7株灸;16進(jìn)制是用0崇摄,1擎值,2,3逐抑,4鸠儿,5,6,7进每,8汹粤,9,a田晚,b嘱兼,c,d贤徒,e芹壕,f來表示。

幾種編碼方案在當(dāng)前的使用情況:

第0接奈,計(jì)算機(jī)是有自己的工作區(qū)的踢涌,這個工作區(qū)被稱為“內(nèi)存”。數(shù)據(jù)在內(nèi)存當(dāng)中處理時序宦,使用的格式是Unicode睁壁,統(tǒng)一標(biāo)準(zhǔn)。

Python3當(dāng)中互捌,程序處理我們輸入的字符串潘明,是默認(rèn)使用Unicode編碼的,所以你什么語言都可以輸入疫剃。

第1钉疫,數(shù)據(jù)在硬盤存儲,或者是在網(wǎng)絡(luò)傳輸時巢价,用的是UTF-8牲阁,因?yàn)?u>節(jié)省空間。但你不必操心如何轉(zhuǎn)換UTF-8Unicode壤躲,當(dāng)我們點(diǎn)擊保存的時候城菊,程序已經(jīng)“默默地”幫我們做好了編碼工作。

第2碉克,一些中文的文件和中文網(wǎng)站凌唬,還在使用GBK,和GB2312漏麦。

基于此客税,有時候面對不同編碼的數(shù)據(jù),我們要進(jìn)行一些操作來實(shí)現(xiàn)轉(zhuǎn)換撕贞。這里就涉及接下來要講的【encode】(編碼)和【decode】(解碼)的用法更耻。

【encode()和decode()】

編碼,即將人類語言轉(zhuǎn)換為計(jì)算機(jī)語言捏膨,就是【編碼】encode()秧均;反之食侮,就是【解碼】decode()

將人類語言編碼后得到的結(jié)果目胡,有一個相同之處锯七,就是最前面都有一個字母b,比如b'\xce\xe2\xb7\xe3'誉己,這代表它是bytes(字節(jié))類型的數(shù)據(jù)眉尸。可以用type()函數(shù)驗(yàn)證一下:

所謂的編碼巨双,其實(shí)本質(zhì)就是把str(字符串)類型的數(shù)據(jù)效五,利用不同的編碼表,轉(zhuǎn)換成bytes(字節(jié))類型的數(shù)據(jù)炉峰。

我們再來區(qū)分下字符和字節(jié)兩個概念畏妖。

字符是人們使用的記號,一個抽象的符號疼阔,這些都是字符:'1'戒劫, '中', 'a'婆廊, '$'迅细, '¥'?

字節(jié)則是計(jì)算機(jī)中存儲數(shù)據(jù)的單元淘邻,一個8位的二進(jìn)制數(shù)茵典。

編碼結(jié)果中除了標(biāo)志性的字母b,你還會在編碼結(jié)果中看到許多\x宾舅,你再觀察一下這個例子:b'\xce\xe2\xb7\xe3'统阿。

\x分隔符,用來分隔一個字節(jié)和另一個字節(jié)筹我。

分隔符還挺常見的扶平,你經(jīng)常會看到網(wǎng)址里面有好多的%,它們也是分隔符蔬蕊,替換了Python中的\x结澄。比如像下面這個:

https://www.baidu.com/s?wd=%E5%90%B4%E6%9E%AB

它的意思就是在百度里面,搜索“吳楓”岸夯,使用的是UTF-8編碼麻献。你瞇著眼睛看一看上面的UTF-8編碼結(jié)果和這一串網(wǎng)址的差異,其實(shí)它們除了分隔符以外猜扮,是一模一樣的勉吻。

此外,用decode()解碼的時候則要注意破镰,UTF-8編碼的字節(jié)就一定要用UTF-8的規(guī)則解碼餐曼,其他編碼同理,否則就會出現(xiàn)亂碼或者報錯的情況鲜漩。

*例:

print(b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'.decode('utf-8'))? ? 運(yùn)行結(jié)果:我愛你

你看到大寫字母K被編碼后還是K源譬,但這兩個K對計(jì)算機(jī)來說意義是不同的。前者是字符串孕似,采用系統(tǒng)默認(rèn)的Unicode編碼踩娘,占兩個字節(jié)。后者則是bytes類型的數(shù)據(jù)喉祭,只占一個字節(jié)养渴。這也驗(yàn)證我們前面所說的編碼就是將str類型轉(zhuǎn)換成bytes類型

【文件讀寫】

文件讀寫泛烙,是Python代碼調(diào)用電腦文件的主要功能理卑,能被用于讀取和寫入文本記錄、音頻片段蔽氨、Excel文檔藐唠、保存郵件以及任何保存在電腦上的東西

假如你有一項(xiàng)工作鹉究,需要把100個Word文檔里的資料合并到1個文件上宇立,一個個地復(fù)制粘貼多麻煩啊,這時你就能用上Python了自赔÷栲冢或者,當(dāng)你要從網(wǎng)上下載幾千條數(shù)據(jù)時绍妨,直接用Python幫你把數(shù)據(jù)一次性存入文件也是相當(dāng)方便润脸。

因此,Python能把我們從重復(fù)性工作中解放出來他去。

【文件讀寫】津函,是分為【讀】和【寫】兩部分的。

【讀取文件】

【第1步-開】使用open()函數(shù)打開文件孤页。

file1這個變量是存放讀取的文件數(shù)據(jù)的尔苦,以便對文件進(jìn)行下一步的操作。

open()函數(shù)里面有三個參數(shù)行施,第一個參數(shù)是文件的保存地址允坚,一定要寫清楚,否則計(jì)算機(jī)找不到蛾号。

要找到你的文件地址稠项,只需要把你要打開的文件直接拖到編輯器終端的窗口里,就會顯示出文件地址鲜结,然后復(fù)制一下就好展运。

不過文件的地址有兩種:相對路徑絕對路徑活逆,拖到終端獲取的地址是絕對路徑。這兩種地址拗胜,Mac和Windows電腦還有點(diǎn)傲嬌地不太一樣蔗候,下面我就幫大家捋一捋。

絕對路徑就是最完整的路徑埂软,相對路徑指的就是【相對于當(dāng)前文件夾】的路徑锈遥,也就是你編寫的這個py文件所放的文件夾路徑!

如果你要打開的文件和open.py同一個文件夾里勘畔,這時只要使用相對路徑就行了所灸,而要使用其他文件夾的文件則需使用絕對路徑

Mac電腦:

現(xiàn)在我的txt文件和py文件都放在桌面的test文件夾里炫七。

我將txt文件拖入終端窗口爬立,獲得文件的絕對路徑

當(dāng)我用open()函數(shù)打開的時候,就可以寫成:

在這種情況下万哪,你寫絕對和相對路徑都是可以的懦尝。

假如現(xiàn)在這個txt文件,是放在test文件夾下面一個叫做word的文件夾里壤圃,絕對路徑和相對路徑就變成:


Windows電腦:

常用\來表示絕對路徑陵霉,/來表示相對路徑

所以當(dāng)你把文件拖入終端的時候伍绳,絕對路徑就變成:

但是呢踊挠,別忘了\在Python中是轉(zhuǎn)義字符,所以時常會有沖突冲杀。為了避坑效床,Windows的絕對路徑通常要稍作處理,寫成以下兩種格式:

獲取文件的相對路徑還有個小竅門权谁,用VS Code打開文件夾剩檀,在文件點(diǎn)擊右鍵,選擇:

現(xiàn)在旺芽,把這行代碼復(fù)制到你的open.py文件中沪猴,然后把文件地址替換成你自己的地址。

第二個參數(shù)表示打開文件時的模式采章。這里是字符串?'r'运嗜,表示 read,表示我們以的模式打開了這個文件悯舟。

你可能會疑惑担租,為什么打開的時候就要決定是讀還是寫,之后決定不行嗎抵怎?這是因?yàn)榉芫龋?jì)算機(jī)非常注意數(shù)據(jù)的保密性岭参,在打開時就要決定以什么模式打開文件。

除了'r',其他還有'w'(寫入)尝艘,'a'(追加)等模式演侯。

第三個參數(shù)encoding='utf-8',表示的是返回的數(shù)據(jù)采用何種編碼利耍,一般采用utf-8或者gbk。注意這里是寫encoding而不是encode噢盔粹。

【第2步-讀】用read()函數(shù)進(jìn)行讀取的操作隘梨。

在編輯器窗口【右鍵】,選擇【在終端中運(yùn)行Python文件】舷嗡,這時終端顯示的是:

打印出了abc.txt文件里面的內(nèi)容轴猎,它會讀成字符串的數(shù)據(jù)形式。

【第3步-關(guān)】關(guān)閉文件进萄,使用的是close()函數(shù)捻脖。

為啥要關(guān)閉文件呢?原因有兩個:1.計(jì)算機(jī)能夠打開的文件數(shù)量是有限制的中鼠,open()過多而不close()的話可婶,就不能再打開文件了。2.能保證寫入的內(nèi)容已經(jīng)在文件里被保存好了援雇。

文件關(guān)閉之后就不能再對這個文件進(jìn)行讀寫了惫搏。如果還需要讀寫這個文件的話茴丰,就要再次 open() 打開這個文件尸曼。

【總結(jié)——讀文件】

【寫入文件】

【第1步-開】以寫入的模式打開文件冒签。

第二個參數(shù)改成'w',表示write噪伊,即以寫入的模式打開文件豆励。

【第2步-寫】往文件中寫入內(nèi)容淮摔,使用write()函數(shù)。

往“abc.txt”文件中寫入了“張無忌”和“宋青書”這兩個字符串乡翅。\n表示另起一行腺毫。

當(dāng)你打開txt文件查看數(shù)據(jù):

誒?原來文件里的周芷若和趙敏去哪里了遭贸?

是這樣子的咒劲,'w'寫入模式會給你暴力清空掉文件帐偎,然后再給你寫入。如果你只想增加?xùn)|西蛔屹,而不想完全覆蓋掉原文件的話削樊,就要使用'a'模式,表示append兔毒,追加的意思嫉父。

【第3步-關(guān)】還是要記得關(guān)閉文件沛硅,使用close()函數(shù)。

*有兩個小提示:1.write()函數(shù)寫入文本文件的也是字符串類型绕辖。2.在'w''a'模式下摇肌,如果你打開的文件不存在,那么open()函數(shù)會自動幫你創(chuàng)建一個仪际。

【小練習(xí)】1.請你在一個叫1.txt文件里寫入字符串'難念的經(jīng)'?2.然后請你讀取這個1.txt文件的內(nèi)容围小,并打印出來。

【總結(jié)——寫文件】

現(xiàn)在問題來了树碱,如果我們想寫入的數(shù)據(jù)不是文本內(nèi)容肯适,而是音頻和圖片的話缀壤,該怎么做呢搜骡?

不同的讀寫方式:

我們可以看到里面有'wb'的模式,它的意思是以二進(jìn)制的方式打開一個文件用于寫入啊片。因?yàn)?u>圖片和音頻是以二進(jìn)制的形式保存的赎婚,所以使用wb模式就好了刘绣,這在今天的課后作業(yè)我們會用到。

這里再順便補(bǔ)充一個用法挣输,為了避免打開文件后忘記關(guān)閉纬凤,占用資源或當(dāng)不能確定關(guān)閉文件的恰當(dāng)時機(jī)的時候,我們可以用到關(guān)鍵字with撩嚼,之前的例子可以寫成這樣:

所以之后當(dāng)你看到with open...as這種打開文件的語法格式也要淡定停士,這種還挺常見的。

【小練習(xí)】

最近期末快到了完丽,霍格沃茲魔法學(xué)校準(zhǔn)備統(tǒng)計(jì)一下大家的成績恋技。

評選的依據(jù)是什么呢?就是同學(xué)們平時的作業(yè)成績逻族。

現(xiàn)在有這樣一個叫scores.txt的文件蜻底,里面有赫敏、哈利瓷耙、羅恩朱躺、馬爾福四個人的幾次魔法作業(yè)的成績。

但是呢搁痛,因?yàn)橛行┠Хㄗ鳂I(yè)有一定難度长搀,教授不強(qiáng)制同學(xué)們必須上交,所以大家上交作業(yè)的次數(shù)并不一致鸡典。

你可以在自己的電腦里新建一個scores.txt來操作源请。

希望你來統(tǒng)計(jì)這四個學(xué)生的魔法作業(yè)的總得分,然后再寫入一個txt文件。

一個非常粗糙的思路應(yīng)該是:拿到txt文件里的數(shù)據(jù)谁尸,然后對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)舅踪,然后再寫入txt文件。

首先良蛮,毫無疑問抽碌,肯定是打開文件。

接著就是讀取文件了决瞳。一般來說货徙,我們是用read()函數(shù),但是在這里皮胡,我們是需要把四個人的數(shù)據(jù)分開處理的痴颊,我們想要按行處理,而不是一整個處理屡贺,所以讀的時候也希望逐行讀取蠢棱。

因此,我們需要使用一個新函數(shù)readlines()甩栈,也就是“按行讀取”泻仙。

print()函數(shù)打印一下,看看這種方法讀出來的內(nèi)容是咋顯示的:

readlines()?會從txt文件取得一個列表谤职,列表中的每個字符串就是scores.txt中的每一行饰豺。而且每個字符串后面還有換行的\n符號亿鲜。

這樣一來允蜈,我們就可以使用for循環(huán)來遍歷這個列表,然后處理列表中的數(shù)據(jù):

現(xiàn)在我們要把這里每一行的名字蒿柳、分?jǐn)?shù)也分開饶套,這時需要我們使用split()把字符串分開,它會按空格把字符串里面的內(nèi)容分開垒探。

看上圖第一行的羅恩 23 35 44妓蛮,它將被分為['羅恩', '23', '35', '44']

顯然圾叼,對比上面兩個終端的圖蛤克,split()又把每一行的內(nèi)容分成了一個個的字符串,于是變成了一個個列表夷蚊。

split()是我們沒有學(xué)過的對字符串的處理方法构挤,在這里想插一句,對數(shù)據(jù)類型的處理是有很多種方法的惕鼓,但我們不可能一次學(xué)完筋现,而應(yīng)該學(xué)習(xí)最基礎(chǔ)必要的知識,然后在需要用到新知識時,再繼續(xù)學(xué)矾飞。

split()是把字符串分割的一膨,而還有一個join()函數(shù),是把字符串合并的洒沦。

join()的用法是str.join(sequence)豹绪,str代表在這些字符串之中,你要用什么字符串連接申眼,在這里兩個例子森篷,一個是空字符串,一個是橫杠豺型,sequence代表數(shù)據(jù)序列仲智,在這里是列表a。

在這里只是為了讓大家理解join()姻氨,不需要記憶钓辆,之后再用再看就好。

回到哈利波特的那一步肴焊,這4個列表的第0個數(shù)據(jù)是姓名前联,之后的就是成績。我們需要先統(tǒng)計(jì)各人的總成績娶眷,然后把姓名和成績放在一起似嗤。

還是可以用for...in...循環(huán)進(jìn)行加法的操作:

接下來就是把成績寫入一個空的列表,因?yàn)檫@樣才有助于我們之后寫入一個txt文件届宠。

最后寫入文件:

15行的代碼是打開一個叫winner.txt的文件烁落。(如果電腦中不存在winner.txt的話,這行代碼會幫你自動新建一個空白的winner.txt)

16行的代碼是以writelines()的方式寫進(jìn)去豌注,為什么不能用write()伤塌?因?yàn)?b>final_scores是一個列表,而write()的參數(shù)必須是一個字符串轧铁,而writelines()可以是序列每聪,所以我們使用writelines()

【課后練習(xí)】——數(shù)據(jù)轉(zhuǎn)移中的變化

練習(xí)目標(biāo)

我們會通過今天的作業(yè)齿风,復(fù)習(xí)課堂上學(xué)到的知識:編碼和解碼以及文件讀寫药薯。?

練習(xí)要求

今天的練習(xí)包含3個小練習(xí)。

練習(xí)1:主要是想要你自己來動手操作一下編碼和解碼救斑;

練習(xí)2:嘗試一下圖片的讀寫童本;

練習(xí)3:完成文件轉(zhuǎn)移之間的數(shù)據(jù)處理,讓數(shù)據(jù)發(fā)生變化系谐。

【練習(xí)1】

請你根據(jù)代碼中的要求巾陕,一步一步完成讨跟。

【練習(xí)2】

請你通過文件讀寫命令,讀取 photo1 里的數(shù)據(jù)(提示見代碼區(qū)開頭)鄙煤。

然后晾匠,新建名為“photo2”的圖片(在同一個文件夾),寫入讀到的數(shù)據(jù)梯刚。

這樣凉馆,我們就通過文件讀寫的代碼,完成了圖片的復(fù)制(而非鼠標(biāo)右鍵)亡资。

提示1:photo1的圖片是位于同一個文件夾下澜共,所以,直接寫文件名即可(注意有后綴)锥腻。

提示2:可用課堂末尾提到的with open...as這種語句來進(jìn)行文件讀寫嗦董,注意縮進(jìn)

提示3:因?yàn)?u>圖片是以二進(jìn)制的形式保存的瘦黑,所以讀寫時需要用rbwb模式京革。

【練習(xí)3】——在讀寫之間處理數(shù)據(jù)

在課堂上,我們已經(jīng)見識過了:文件的一讀一寫之間幸斥,可以對數(shù)據(jù)進(jìn)行一定的處理匹摇。

請你運(yùn)行一次右側(cè)的代碼,重新體驗(yàn)一下那個過程甲葬。

現(xiàn)在廊勃,我們計(jì)劃對課堂上得到的“winner”文檔再行處理一下。

讓學(xué)員的成績從高到低排列经窖,然后放到新文檔“winner_new.txt”坡垫。

*字符串內(nèi)的字符也是可以通過偏移量進(jìn)行提取的(具體的提取和切片的方法和列表一致)。

如果你成功寫出了代碼钠至,先運(yùn)行參考代碼葛虐,你會發(fā)現(xiàn)并沒有什么變化胎源。

因?yàn)椤皐inner_new.txt”已經(jīng)存在棉钧,且處理方式不變(相當(dāng)再寫入了一次排序后的成績)。

然后涕蚤,請你將代碼28行的“sort(reverse=True)”括號中的“reverse=True”去掉宪卿。

再運(yùn)行一下,看下“winner_new”文檔里的數(shù)據(jù)發(fā)生了什么變化万栅。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末佑钾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子烦粒,更是在濱河造成了極大的恐慌休溶,老刑警劉巖代赁,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異兽掰,居然都是意外死亡芭碍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門孽尽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窖壕,“玉大人,你說我怎么就攤上這事杉女≌胺恚” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵熏挎,是天一觀的道長速勇。 經(jīng)常有香客問我,道長坎拐,這世上最難降的妖魔是什么快集? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮廉白,結(jié)果婚禮上个初,老公的妹妹穿的比我還像新娘。我一直安慰自己猴蹂,他們只是感情好院溺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著磅轻,像睡著了一般珍逸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上聋溜,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天谆膳,我揣著相機(jī)與錄音,去河邊找鬼撮躁。 笑死漱病,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的把曼。 我是一名探鬼主播杨帽,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嗤军!你這毒婦竟也來了注盈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤叙赚,失蹤者是張志新(化名)和其女友劉穎老客,沒想到半個月后僚饭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胧砰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年浪慌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朴则。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡权纤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乌妒,到底是詐尸還是另有隱情汹想,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布撤蚊,位于F島的核電站古掏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏侦啸。R本人自食惡果不足惜槽唾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望光涂。 院中可真熱鬧庞萍,春花似錦、人聲如沸忘闻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽齐佳。三九已至私恬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間炼吴,已是汗流浹背本鸣。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留硅蹦,地道東北人荣德。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像提针,于是被迫代替她去往敵國和親命爬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350