python基礎(chǔ)知識(5)

python 文件I/O

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

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

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

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

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

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

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

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

2、remove(文件名)

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

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

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

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

import os
print os.getcwd()

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

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

python 內(nèi)置函數(shù)

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

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

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

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

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

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

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

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

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

//python3中使用的是operator模塊

  • globals()
    以字典類型返回當前位置的全部全局變量;包括所有導(dǎo)入的變量。
  • max()
    返回給定參數(shù)的最大值,參數(shù)可以為序列。
  • reverse()
    該方法沒有返回值,但是會對列表的元素進行反向排序。
  • zip()
    用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的列表。如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
  • compile()
    將一個字符串編譯為字節(jié)代碼;返回表達式執(zhí)行結(jié)果。
  • hasattr()
    用于判斷對象是否包含對應(yīng)的屬性;如果對象有該屬性返回 True,否則返回 False。
  • memoryview()
    返回給定參數(shù)的內(nèi)存查看對象(Momory view)。所謂內(nèi)存查看對象,是指對支持緩沖區(qū)協(xié)議的數(shù)據(jù)進行包裝,在不需要復(fù)制對象基礎(chǔ)上允許Python代碼訪問。
  • round()
    返回浮點數(shù)x的四舍五入值。
    //python2中是保留值將保留到離上一位更近的一端(四舍六入),如果距離兩端一樣遠,則保留到離0遠的一邊。所以round(0.5)會近似到1,而round(-0.5)會近似到-1。
    python3中是如果距離兩邊一樣遠,會保留到偶數(shù)的一邊。比如round(0.5)和round(-0.5)都會保留到0,而round(1.5)會保留到2。
  • __ import __()
    用于動態(tài)加載類和函數(shù) 。如果一個模塊經(jīng)常變化就可以使用 __ import __() 來動態(tài)載入
  • complex()
    用于創(chuàng)建一個值為 real + imag * j 的復(fù)數(shù)或者轉(zhuǎn)化一個字符串或數(shù)為復(fù)數(shù)。如果第一個參數(shù)為字符串,則不需要指定第二個參數(shù)。
  • hash()
    獲取取一個對象(字符串或者數(shù)值等)的哈希值。
    //函數(shù)可以應(yīng)用于數(shù)字、字符串和對象,不能直接應(yīng)用于 list、set、dictionary。在 hash() 對對象使用時,所得的結(jié)果不僅和對象的內(nèi)容有關(guān),還和對象的 id(),也就是內(nèi)存地址有關(guān)。
  • min()
    返回給定參數(shù)的最小值,參數(shù)可以為序列;與max()相對應(yīng)。比較時,從第一個字符開始,第一個相同,比較第二個,依次類推。
  • set()
    創(chuàng)建一個無序不重復(fù)元素集,可進行關(guān)系測試,刪除重復(fù)數(shù)據(jù),還可以計算交集、差集、并集等。
  • delattr()
    刪除屬性
delattr(對象,對象屬性)
  • help()
    查看函數(shù)或模塊用途的詳細說明。
  • next()
    返回迭代器的下一個項目。
  • setattr()
    設(shè)置屬性值,該屬性必須存在。
  • dict()
    創(chuàng)建一個字典。
  • hex()
    將10進制整數(shù)轉(zhuǎn)換成16進制,以字符串形式表示。
  • slice()
    實現(xiàn)切片對象,主要用在切片操作函數(shù)里的參數(shù)傳遞。
  • dir()
    不帶參數(shù)時,返回當前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時,返回參數(shù)的屬性、方法列表。如果參數(shù)包含方法dir(),該方法將被調(diào)用。如果參數(shù)不包含dir(),該方法將最大限度地收集參數(shù)信息。
  • id()
    獲取對象的內(nèi)存地址。
  • oct()
    將一個整數(shù)轉(zhuǎn)換成8進制字符串。
  • sorted()
    對所有可迭代的對象進行排序操作。
    // sort 與 sorted 區(qū)別:sort 是應(yīng)用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。list 的 sort 方法返回的是對已經(jīng)存在的列表進行操作,而內(nèi)建函數(shù) sorted 方法返回的是一個新的 list,而不是在原來的基礎(chǔ)上進行的操作。
  • exec()
    執(zhí)行儲存在字符串或文件中的Python語句,相比于 eval,exec可以執(zhí)行更復(fù)雜的 Python 代碼。exec 返回值永遠為 None。
    //在 Python2 中exec不是函數(shù),而是一個內(nèi)置語句(statement),但是Python 2中有一個 execfile() 函數(shù)??梢岳斫鉃?Python 3 把 exec 這個 statement 和 execfile() 函數(shù)的功能夠整合到一個新的 exec() 函數(shù)中去了。
    上一篇:python基礎(chǔ)知識(4)
    下一篇:python基礎(chǔ)知識(進階篇--正則表達式)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容