#GetFuncInPy.py 獲取函數
import sys
import re
import os
print()
if len(sys.argv) != 2:
print ("Error Usage!please use as :GetFuncInPy.py os.py")
exit()
path = "C:\\Python33\\Lib\\"<span style="white-space:pre"> </span>#Your python's installation file name
if not os.path.isfile(path + sys.argv[1]):
print ("'%s' is not a file!"%sys.argv[1])
exit()
fp = open(path + sys.argv[1] )
#output functions whose name is not "_xxxx"
for line in fp.readlines():
if line[0]!= ' ' and "def " in line and not"def _" in line:
print(line.strip())
close(fp)
#p = re.compile(r"def \w+\(.*\):") #我原本想用高端的RE做的。。。結果好難寫正則表達式
#p.matchall(sys.argv[1])
然後python GetFuncInpy.py os.py來看看os.py裏面都有什麼函數,結果如下:
然後我就知道了:我搞錯了!這個os.py是進程控制用的!不是文件打開關閉讀寫那個!!!原來文件的打開關閉是內置的!!!我不知道去哪裏找這些不需要import的東西的源碼!我就找了網上的一些東西。。。
······文件打開:open(name , type) #type 可爲 "r","w","r+",“w+”,"rb+","wb+"等,“+”表示讀寫都有,"b"表示二進制打開。至於二進制和字符串形式文件的區別,我查一下:然後我淺顯的理解了一下:一個("r")是以2byte爲單位讀的,一個 ("rb")是以byte爲單位讀的。而且讀出的東西不一樣,前者是str,後者是bytes。
······文件讀寫:read([size]) write(str)
還有一些額外的 readline() readlines() ,readlines()常見用法就是
for line in f.readlines():
print(line.strip()) #或者其他對line的操作,strip可以去掉最後的‘\n’
·······文件指針相關:tell() seek(offset [,whence = 1]) # offset 表示指針轉移到whence後offset偏移量處,whence = 0 :從文件起始處開始, = 1 從當前處開始, =2 從文件尾處開始(文件尾部向後搜索有什麼用?)
-25.。。。。