1. 程式人生 > >[Python_3] Python 函式 & IO

[Python_3] Python 函式 & IO


 

0. 說明

  Python 函式 & IO 筆記,基於 Python 3.6.2

 

  參考

   Python: read(), readline()和readlines()使用方法及效能比較

   Python3 File(檔案) 方法

   Python基礎

   

 

 


1. 函式

 

# -*-coding:utf-8-*-

"""
    函式
"""

# 定義函式,有return語句,否則返回None
def add(a, b):
    #
有返回語句 print("a : " + str(a)) print("b : " + str(b)) return a + b print(add(2, 3)) """ 定義函式,有return語句,否則返回None *a : 變長引數 *args : 固定寫法,表示當前位置上任何多個無名引數,它是一個tuple **kwargs: 固定寫法,關鍵字引數,它是一個dict 此種方式類似於Java 的反射中的 Method 類,能夠提取函式的執行時資訊。 """ def f1(*a): for e in a:
print(e) # 呼叫函式,傳遞變長引數 f1((1, 2, 3, 4, 5)) def f2(a, b, c, *args): print(str(args)) f2(1, 2, 3, 4, 5) def foo(x, *args, **kwargs): print('args=', args) print('kwargs=', kwargs) print('**********************') foo(1, 2, 3, 4) foo(1000, a=1, b=2, c=3) foo(1, 2, a=4, b=5, c=100)

 


 

2. IO 

 

# -*-coding:utf-8-*-

"""
    IO
"""

"""
    檔案讀操作
"""
# 一次性讀取所有行檔案
f1 = open("e:/data.txt")
lines = f1.readlines()
for l in lines:
    print(l, end="")
f1.close()

# 每次讀取下一行檔案
print()
print("=============")
f2 = open("e:/data.txt")
while (True):
    # 讀取第一行
    line = f2.readline()
    while line is not None and line != "":
        print(line, end="")
        # 讀取下一行
        line = f2.readline()
    else:
        break
f2.close()


"""
    None,類似於 Java 中 null 的表示不存在。
"""
x = None
print(x)


""""
    檔案寫操作
    寫入檔案 mode=r | wa |
    w : overwrite 覆蓋模式
    a : append 追加模式
"""
f = open("e:/data2.txt", mode="a")
f.write("i am panda")
f.close()


"""
    檔案重新命名
    原始檔必須存在
"""
import os
os.renames("e:/data2.txt", "e:/data3.txt")

"""
    刪除檔案
"""
import os
os.remove("e:/data3.txt")

"""
    建立 & 刪除空目錄
"""
import os
# os.mkdir("e:/testdir")
os.removedirs("e:/testdir")

"""
    列出目錄的元素
"""
import os
files = os.listdir("d:/")
for i in files:
    print(i)

 


 

3. 主函式執行 

# -*-coding:utf-8-*-

"""
    匯入 Python 模組,每個 Python 檔案就是一個模組
    判斷當前檔案是否直接執行,還是被其他引用
    直接執行的時候值為"__main__"
"""
import test6_function
test6_function.add(1, 2)
print(__name__)

if __name__ == "__main__":
    print(100)

 


 

4. 引數提取 

  模擬引數設定

  

 

"""
    引數提取
    通過 sys 的 argv 屬性提取引數列表
"""
# 提取指令碼的引數
import sys

r = sys.argv
print(r[0])
print(r[1])

 

  結果如下,第一個引數為指令碼

 


 

5. 反射訪問 

"""
    反射訪問
"""
s = "xxx"
s.__len__()
# 返回物件的指定屬性,沒有的話,可以指定預設值
r1 = getattr(s, "len", "no this attr")
r2 = getattr(s, "__len__", "no this attr")
print(r1)
print(r2)

 


 

6. 日期函式 

"""
    時間函式
"""
# 匯入時間庫
import datetime
datetime.datetime.now()
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))