IO編程

(1)經常使用命令    from sys import argv    form os.path import exists    命令行運行程序 帶參數:        script,filename=argv    文件操做相關命令:        close:關閉文件        open:打開文件        read:讀取文件內容        readline:讀取文本文件中的一行        readlines:讀取文件全部的行,返回list        truncate:清空文件        write("stuff"):將stuff寫入文件(2)IO操做    同步IO:CPU和內存等着外設的執行    異步IO:CPU和內存在外設執行的時候去執行其餘其餘任務    try:        f=open('/path/to/file','r')        print(f.read())    finally:        if f:            f.close()    with open('/path/to/file','r') as f:        print(f.read())    read():一次性讀取文件所有內容,read(size),屢次分段讀取大文件的內容;    readline():每次讀取一行內容;    readlines():一次讀取文件全部內容並按行返回list    for line in f.readlines():        print(line.strip())   # 把末尾的\n 刪掉    讀取UTF-8編碼的二進制文件:f=open('/path/to/file','rb')    讀取UTF-8編碼的文件:f=open('/path/to/file','r',encoding='gbk',errors='ignore') # 忽略編碼錯誤    寫文件時,調用open方法,傳入標識符'w'、'wb'分別表示寫文本文件、二進制文件    'a':以追加模式寫入    fo=open('test.txt','w',encoding='uft-8')  # test.txt 不存在,則新建    fo.write('啦啦啦')    fo.close() #寫文件時,os不會馬上把數據寫入磁盤,而是放到內存緩存起來,空閒的時候再慢慢寫入。    #只有調用close()方法時,操做系統才保證把沒有寫入的數據所有寫入磁盤    fo=open('test.txt','a',encoding='uft-8')  # 在文件中追加內容    fo.write('\n這是追加的內容')    fo.close()(3)IO內存操做    StringIO:在內存中讀寫str    from io import StringIO    f=StringIO('Hello!\nHi!\nGoodbye!')    print(f.getvalue())  #  獲取寫入後的str    while True:        s=f.readline()        if s=='':            break        print(s.strip())    BytesIO:在內存中讀寫bytes    from io imprt BytesIO    f=BytesIO()    f.write('中文'.encode(''UTF-8))    print(f.getvalue())(4)OS經常使用    import os    os.name  # posix:linux\unix\mac  nt:windows    os.environ  # 查看操做系統中定義的環境變量    os.environ.get('PATH')  # 查看PATH環境變量    os.path.abspath('.')  # 查看當前目錄的絕對路徑    os.path.join('/User/michael','testdir') # 在某個目錄下建立一個新目錄(兼容不一樣操做系統),首先把新目錄的完整路徑表示出來    os.mkdir('/User/michael/testdir')  # 而後建立一個目錄    os.rmdir('/User/michael/testdir')  # 刪掉一個目錄    os.path.split('/User/michael/testdir/file.txt') # 拆分路徑,後一部分是最後級別的目錄或 文件名    os.path.splitext('/User/michael/testdir/file.txt') # 直接獲得文件擴展名    拆分、合併路徑的函數只是對字符串進行操做,不要求目錄和文件真實存在    os.rename('test.txt','test.py')  # 文件重命名    os.remove('test.py')  # 刪除文件    os.isabs(path)  # 判斷是不是絕對路徑    os.path.exists(path) # 檢驗給出的拉路徑是否真的存在    os.path.basename(path) # 獲取文件名    os.path.dirname(path) # 獲取路徑名    shutil模塊提供了copyfile()的函數來複制文件,能夠把它看作os模塊的補充    # 列出當前目錄下全部的目錄    [x for x in os.listdir('.') if os.path.isdir(x)]    # 列出全部的.py文件    [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext[1]=='.py']
相關文章
相關標籤/搜索