python基礎知識(5)

python 文件I/O

  • 輸出
print '內容'
  • 輸入
    1、raw_input()
    //從標準輸入讀取一個行,并返回一個字符串(去掉結尾的換行符),若輸入為python表達式,則會返回表達式原式而不是運算結果。
s=raw_input('Enter a number:')

2、input()
// input 可以接收一個Python表達式作為輸入,并將運算結果返回。

s=input('Enter something:')
  • 打開文件
file object = open(file_name [, access_mode][, buffering])

    file_name:file_name變量是一個包含了你要訪問的文件名稱的字符串值。
    access_mode:access_mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀(r)。
    buffering:如果buffering的值被設為0,就不會有寄存。如果buffering的值取1,訪問文件時會寄存行。如果將buffering的值設為大于1的整數,表明了這就是寄存區的緩沖大小。如果取負值,寄存區的緩沖大小則為系統默認。
  • file 對象屬性
  • file 對象方法
    1、close()
    // File 對象的 close()方法刷新緩沖區里任何還沒寫入的信息,并關閉該文件,這之后便不能再進行寫入;當一個文件對象的引用被重新指定給另一個文件時,Python 會關閉之前的文件。用 close()方法關閉文件是一個很好的習慣。
文件名.close()

2、write()
//可將任何字符串寫入一個打開的文件。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字;write()方法不會在字符串的結尾添加換行符('\n')。

fo=open('文件名','w')
fo.write(需寫入的字符串)
fo.close()

3、read()
//從一個打開的文件中讀取一個字符串。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字。在這里,被傳遞的參數是要從已打開文件中讀取的字節計數。該方法從文件的開頭開始讀入,如果沒有傳入count,它會嘗試盡可能多地讀取更多的內容,很可能是直到文件的末尾。

文件名.read([需要讀取的字節數])
  • 文件定位
    // tell()方法告訴你文件內的當前位置, 換句話說,下一次的讀寫會發生在文件開頭這么多字節之后。
    seek(offset [,from])方法改變當前文件的位置。Offset變量表示要移動的字節數。From變量指定開始移動字節的參考位置。
    如果from被設為0,這意味著將文件的開頭作為移動字節的參考位置。如果設為1,則使用當前的位置作為參考位置。如果它被設為2,那么該文件的末尾將作為參考位置。
文件名.tell():告訴文件內的當前位置
文件名.seek(要移動的字節數,開始移動字節的參考位置)
  • 重命名和刪除文件
    1、rename()
import os
os.rename(當前文件名,新文件名)

2、remove(文件名)

import os
os.ramove(文件名)
  • python里的目錄
    1、mkdir()
    //可以使用os模塊的mkdir()方法在當前目錄下創建新的目錄們。
import os
os.mkdir(新目錄名)

2、chdir()
//改變當前的目錄.

import os
os.chdir(想要跳轉到的目錄名)

3、getcwd()
//顯示當前的工作目錄

import os
print os.getcwd()

4、rmdir()
//刪除某個目錄,目錄的完全合規的名稱必須被給出,否則會在當前目錄下搜索該目錄。

import os
os.rmdir(要刪除的目錄名)
  • 文件方法
    1、file.close():關閉文件,關閉后文件不能再進行讀寫操作;
    2、file.flush():刷新文件內部緩沖,直接把內部緩沖區的數據立刻寫入文件,而不是被動的等待輸出緩沖區寫入。
    3、file.fileno():返回一個整型的文件描述符,可以用在os模塊的read方法等一些底層操作上。
    4、file.isatty():如果文件連接到一個終端設備返回 True,否則返回 False。
    5、file.next():返回文件下一行。
    6、file.read([size]):從文件讀取指定的字節數,如果未給定或為負則讀取所有。
    7、file.readline([size]):讀取整行,包括'\n'字符。
    8、file.readlines([sizehint]):讀取所有行并返回列表,若給定的sizehint>0,則表明一次讀取多少行。
    9、file.seek[需要偏移的字節[,偏移初始位置]:設置文件當前位置。
    10、file.tell():返回文件當前位置。
    11、file.truncate([size]):截取文件,截取的字節通過size指定,默認為當前文件位置。
    12、file.write(str):將字符串寫入文件,沒有返回值。
    13、file.writelines(sequence):向文件寫入一個字符串列表,如果需要換行則自己加入每行的換行符。

python 內置函數

  • abs()
    返回數字的絕對值
  • divmod()
    把除數和余數運算結果結合起來,返回一個包含商和余數的元組(a // b, a % b)
  • input()
    input() 和 raw_input() 這兩個函數均能接收字符串 ,但 raw_input() 直接讀取控制臺的輸入(任何類型的輸入它都可以接收)。而對于 input() ,它希望能夠讀取一個合法的 python 表達式,即你輸入字符串的時候必須使用引號將它括起來,否則它會引發一個 SyntaxError 。
    除非對 input() 有特別需要,否則一般情況下我們都是推薦使用 raw_input() 來與用戶交互。
  • open()
    打開一個文件
  • staticmethod()
    返回函數的靜態方法
  • all()
    用于判斷給定的可迭代參數 iterable 中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。元素除了是 0、空、FALSE 外都算 TRUE。空元組、空列表返回值為True。
  • enumerate()
    將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。
  • int()
    將一個字符串或數字轉換為整型。
  • ord()
    chr() 函數(對于8位的ASCII字符串)或 unichr() 函數(對于Unicode對象)的配對函數,它以一個字符(長度為1的字符串)作為參數,返回對應的 ASCII 數值,或者 Unicode 數值,如果所給的 Unicode 字符超出了你的 Python 定義范圍,則會引發一個 TypeError 的異常。
  • str()
    將對象轉化為適于人閱讀的形式。
  • any()
    判斷給定的可迭代參數 iterable 是否全部為 False,則返回 False,如果有一個為 True,則返回 True。元素除了是 0、空、FALSE 外都算 TRUE。空元組、空列表返回值為False。
  • eval()
    用來執行一個字符串表達式,并返回表達式的值.
    //eval 方法能使字符串本身的引號去掉,保留字符的原本屬性。
  • isinstance()
    判斷一個對象是否是一個已知的類型,類似 type()。
    // isinstance() 與 type() 區別:
    type() 不會認為子類是一種父類類型,不考慮繼承關系。
    isinstance() 會認為子類是一種父類類型,考慮繼承關系。
    如果要判斷兩個類型是否相同推薦使用 isinstance()。
  • pow()
    返回 x^y(x的y次方) 的值。
對于內置pow():pow(x,y[,z])
對于math模塊:pow(x,y)
函數是計算x的y次方,如果z在存在,則再對結果進行取模,其結果等效于pow(x,y) %z;
pow() 通過內置的方法直接調用,內置方法會把參數作為整型,而 math 模塊則會把參數轉換為 float。
pow(x,y)==x**y
pow(x,y[,z])==x**y%z
  • sum()
    對系列進行求和計算。
sum(iterable[,start])
iterable:可迭代對象,如:列表、元組、集合。
start:指定相加的參數,如果沒有設置這個值,默認為0。
sum([1,2,3],2)=8
  • basestring()
    str 和 unicode 的超類(父類),也是抽象類,因此不能被調用和實例化,但可以被用來判斷一個對象是否為 str 或者 unicode 的實例,isinstance(obj, basestring) 等價于 isinstance(obj, (str, unicode))。
  • execfile()
    執行文件內的內容
  • issubclass()
issubclass(class,classinfo)

如果 class 是 classinfo 的子類返回 True,否則返回 False。

  • print()
    打印輸出
  • super()
    調用父類的一個方法
  • bin()
    返回一個整數(int)或者長整數(long int)的二進制形式.
bin(X)
  • file()
    創建一個file對象
  • iter()
    生成迭代器
  • property()
    在新式類中返回屬性值。
  • tuple()
    將列表轉換為元組
tuple(列表)

//對于字典則會返回由鍵名組成元組,對于元組則會返回本身。

  • bool()
    將給定參數轉換為布爾類型,如果沒有參數,返回 False。
    //bool是int的子類
  • filter()
filter(函數名,序列)

filter() 函數用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然后返回 True 或 False,最后將返回 True 的元素放到新列表中。

  • len()
    返回對象(字符、列表、元組等)長度或項目個數.
  • range()
range(開始,結束,間隔數)

//間隔數默認為1,開始位置默認為0,只含兩個參數時,若后面一個參數小于前面一個參數,則返回 [ ]。
創建一個整數列表,一般用在 for 循環中.

  • type()
    如果你只有第一個參數則返回對象的類型,三個參數返回新的類型對象。
    // isinstance() 與 type() 區別:
    1、type() 不會認為子類是一種父類類型,不考慮繼承關系。
    2、isinstance() 會認為子類是一種父類類型,考慮繼承關系。
    如果要判斷兩個類型是否相同推薦使用 isinstance()。
  • bytearray()
    返回一個新字節數組。這個數組里的元素是可變的,并且每個元素的值范圍: 0 <= x < 256。
  • float()
    將整數和字符串轉換成浮點數。
  • list()
    將元組轉化為列表
    //元組 ( ) 中的值無法修改,列表 [ ] 中的值可修改。
  • raw_input()
    用來獲取控制臺的輸入,將所有輸入作為字符串看待;input可以將輸入的表達式進行運算。
    //raw_input與input后面括號內若給予字符串,則均需要加上 ' '。
  • unichr
    返回unicode的字符。
    //與之相對應的chr(),則根據所給的字符返回對應的ascii碼(有一定的范圍限制)。
  • callable()
    檢查一個對象是否是可調用的。如果返回True,object仍然可能調用失敗;但如果返回False,調用對象ojbect絕對不會成功。
    //對于函數, 方法, lambda 函式, 類, 以及實現了 call 方法的類實例, 它都返回 True。
  • format()
    增強了字符串格式化的功能。基本語法是通過 {} 和 : 來代替以前的 %;format 函數可以接受不限個參數,位置可以不按順序。
  • locals()
    以字典類型返回當前位置的全部局部變量。對于函數, 方法, lambda 函式, 類, 以及實現了 call 方法的類實例, 它都返回 True。
  • reduce()
    對參數序列中元素進行累積。函數將一個數據集合(鏈表,元組等)中的所有數據進行下列操作:用傳給 reduce 中的函數 function(有兩個參數)先對集合中的第 1、2 個元素進行操作,得到的結果再與第三個數據用 function 函數運算,最后得到一個結果。
    //在 Python3 中,reduce() 函數已經被從全局名字空間里移除了,它現在被放置在 fucntools 模塊里,如果想要使用它,則需要通過引入 functools 模塊來調用 reduce() 函數。
  • chr()
    用一個范圍在 range(256)內的(就是0~255)整數作參數,返回一個對應的字符。
    //chr(i)中的 i 既可以是十進制又可以是十六進制。
  • frozenset()
    返回一個凍結的集合,凍結后集合不能再添加或刪除任何元素。
  • long()
    將數字或字符串轉換為一個長整型。
long(x,base=10)
  • reload()
    重新載入之前載入的模塊。
  • vars()
    返回對象object的屬性和屬性值的字典對象,如果沒有參數,就打印當前調用位置的屬性和屬性值類似 locals()。
  • classmethod修飾符
    classmethod 修飾符對應的函數不需要實例化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數,可以來調用類的屬性,類的方法,實例化對象等。
  • getattr()
    返回一個對象屬性值。
  • map()
    根據提供的函數對指定序列做映射。第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
  • repr()
    將對象轉化為供解釋器讀取的形式,返回一個對象的 string 格式。
  • xrange()
    用法與range()類似,只是生成的不是一個數組,而是一個生成器。
list(xrange(10))==range(10)
  • cmp()
    用于比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
cmp(x,y)

//python3中使用的是operator模塊

  • globals()
    以字典類型返回當前位置的全部全局變量;包括所有導入的變量。
  • max()
    返回給定參數的最大值,參數可以為序列。
  • reverse()
    該方法沒有返回值,但是會對列表的元素進行反向排序。
  • zip()
    用于將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
  • compile()
    將一個字符串編譯為字節代碼;返回表達式執行結果。
  • hasattr()
    用于判斷對象是否包含對應的屬性;如果對象有該屬性返回 True,否則返回 False。
  • memoryview()
    返回給定參數的內存查看對象(Momory view)。所謂內存查看對象,是指對支持緩沖區協議的數據進行包裝,在不需要復制對象基礎上允許Python代碼訪問。
  • round()
    返回浮點數x的四舍五入值。
    //python2中是保留值將保留到離上一位更近的一端(四舍六入),如果距離兩端一樣遠,則保留到離0遠的一邊。所以round(0.5)會近似到1,而round(-0.5)會近似到-1。
    python3中是如果距離兩邊一樣遠,會保留到偶數的一邊。比如round(0.5)和round(-0.5)都會保留到0,而round(1.5)會保留到2。
  • __ import __()
    用于動態加載類和函數 。如果一個模塊經常變化就可以使用 __ import __() 來動態載入
  • complex()
    用于創建一個值為 real + imag * j 的復數或者轉化一個字符串或數為復數。如果第一個參數為字符串,則不需要指定第二個參數。
  • hash()
    獲取取一個對象(字符串或者數值等)的哈希值。
    //函數可以應用于數字、字符串和對象,不能直接應用于 list、set、dictionary。在 hash() 對對象使用時,所得的結果不僅和對象的內容有關,還和對象的 id(),也就是內存地址有關。
  • min()
    返回給定參數的最小值,參數可以為序列;與max()相對應。比較時,從第一個字符開始,第一個相同,比較第二個,依次類推。
  • set()
    創建一個無序不重復元素集,可進行關系測試,刪除重復數據,還可以計算交集、差集、并集等。
  • delattr()
    刪除屬性
delattr(對象,對象屬性)
  • help()
    查看函數或模塊用途的詳細說明。
  • next()
    返回迭代器的下一個項目。
  • setattr()
    設置屬性值,該屬性必須存在。
  • dict()
    創建一個字典。
  • hex()
    將10進制整數轉換成16進制,以字符串形式表示。
  • slice()
    實現切片對象,主要用在切片操作函數里的參數傳遞。
  • dir()
    不帶參數時,返回當前范圍內的變量、方法和定義的類型列表;帶參數時,返回參數的屬性、方法列表。如果參數包含方法dir(),該方法將被調用。如果參數不包含dir(),該方法將最大限度地收集參數信息。
  • id()
    獲取對象的內存地址。
  • oct()
    將一個整數轉換成8進制字符串。
  • sorted()
    對所有可迭代的對象進行排序操作。
    // sort 與 sorted 區別:sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操作。
  • exec()
    執行儲存在字符串或文件中的Python語句,相比于 eval,exec可以執行更復雜的 Python 代碼。exec 返回值永遠為 None。
    //在 Python2 中exec不是函數,而是一個內置語句(statement),但是Python 2中有一個 execfile() 函數。可以理解為 Python 3 把 exec 這個 statement 和 execfile() 函數的功能夠整合到一個新的 exec() 函數中去了。
    上一篇:python基礎知識(4)
    下一篇:python基礎知識(進階篇--正則表達式)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,268評論 2 375

推薦閱讀更多精彩內容

  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,427評論 0 5
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,809評論 18 139
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,870評論 0 38
  • 明知沒意義,卻無法不執著的事物——誰都有這樣的存在。 前幾天逛貼吧時看到了一個關于單戀的帖子,主題是說說你單戀的人...
    esme3104閱讀 406評論 0 0
  • 今天我們在回家的路上看到了,文具店,突然想起今天要買鬧鐘,我和媽媽踏進的文具店。 買這個鬧鐘的原因,是因為我經常起...
    偵探迷閱讀 279評論 0 1