python基礎之文件操做,函數

文件操做python

+模式: r+t  w+t  a+t  r+b   w+b  a+b 函數

         可讀可寫,其餘功能與人,r,w,a相同工具

f.seek(offset,whence) 文件指針移動    offest的單位爲bytes   whence是參照物spa

f.seek(3,0)  whence默認值爲0   0:文件開頭開始  1:當前指針位置  2:參照末尾指針

強調:其中whence = 1 和 whence = 2 只能在b模式下使用,除非offest =0 是均可以blog

           f.seek(-2,2)當whence = 2 時,offset須要用負數表示內存

 

f.tell()每次統計都是從文件開頭到當前指針所在位置rem

注:只有在t模式下的read(n),n才表明字符的個數,除此以外其餘但凡涉及到文件指針的都已bytes爲單位it

f.truncate(9) 固定參照文件開頭,9表明9bytesclass

 

修改文件:

方法一:先將原文件內容一次性讀入內存,在內存修改完成後覆蓋寫回原文件

         缺點:文件過大的狀況下會佔用過多的內存空間

         優勢:修改期間文件內容始終只有一份

with open('a.txt') as read_f:
data=read_f.read()    
data=data.replace('alex','SB') 
with open('a.txt') as write_f:
    write_f.write(data) 

方法二:以讀的方式打開原文件,寫的方式打開新文件,從原文件中循環讀取每一行內容,         修改後寫入新文件,而後刪除原文件,把新文件名命名爲原來的文件名

         缺點:修改期間文件內容有兩份

         優勢:內存中同一時間只有一行內容

import os
with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
    for line in read_f:
        line=line.replace('alex','SB')
        write_f.write(line)
os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')

 

 

函數的應用

1.什麼是函數?

         在程序中,函數就是具有某一功能的工具,函數的使用必須遵循先定義,後調用的原則

2.爲什麼使用函數?

         不用函數的問題:

                  ①.程序冗長

                  ②.擴展性差

                  ③.可讀性差

 

3.如何使用:先定義後使用

         def 函數名(參數,參數……):

                  ‘’’

                  功能描述

                  參數描述

                  return:返回值描述

                  ‘’’

                  代碼塊

                  return 返回值

 

4.定義:

         沒有定義而直接引用的函數名,至關於引用一個不存在的變量名

         ①函數的定義階段:不執行函數體代碼,但會檢測函數體的語法

         ②調用階段:執行函數體代碼

 

參數:函數體接收外部值的一個媒介

函數定義的三種形式:

1.無參數函數:在定義階段,括號內沒有參數

         注意:定義時無參,意味着調用時也無需傳入參數

         應用:若是函數體代碼邏輯不須要外部傳參值時,用無參數函數

 

2.有參數函數:在函數定義時,括號內有參數

         注意:定義時有參,意味着調用時也須要傳參

         應用:若是函數體代碼邏輯須要外部傳參值時,須要有參數函數

 

3.空函數:

         def func():

                  pass

         用於結構的構建,先搭好結構,後期再填代碼

相關文章
相關標籤/搜索