python文件小號單排。。。。(這局沒打好。。。-25)

#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.。。。。


發佈了25 篇原創文章 · 獲贊 4 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章