亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

            python中os操作文件及文件路徑實例匯總

            系統 2078 0

            本文實例講述了python中os操作文件及文件路徑的方法。分享給大家供大家參考。具體分析如下:

            python獲取文件上一級目錄:取文件所在目錄的上一級目錄

            復制代碼 代碼如下:
            os.path.abspath(os.path.join(os.path.dirname('settings.py'),os.path.pardir))

            os.path.pardir是父目錄,os.path.abspath是絕對路徑
            舉例具體看一下輸出:
            復制代碼 代碼如下:
            print os.path.dirname(os.path.abspath("__file__"))
            print os.path.pardir
            print os.path.join(os.path.dirname("__file__"),os.path.pardir)
            print os.path.abspath(os.path.join(os.path.dirname("__file__"),os.path.pardir))

            輸出結果:

            ? G:\work\python
            ? ..????????????????????? #這是兩個點“..”,也就是上級目錄的表示方法
            ? ..
            ? G:\work
            ?
            獲取文件當前路徑:

            復制代碼 代碼如下:
            os.path.dirname(os.path.abspath('__file__'))

            ?
            python中對文件、文件夾(文件操作函數)的操作需要涉及到os模塊和shutil模塊。
            得到當前工作目錄,即當前Python腳本工作的目錄路徑: os.getcwd()
            返回指定目錄下的所有文件和目錄名:os.listdir()
            函數用來刪除一個文件:os.remove()
            刪除多個目錄:os.removedirs(r“c:\python”)
            檢驗給出的路徑是否是一個文件:os.path.isfile()
            檢驗給出的路徑是否是一個目錄:os.path.isdir()
            判斷是否是絕對路徑:os.path.isabs()
            檢驗給出的路徑是否真地存:os.path.exists()
            返回一個路徑的目錄名和文件名:os.path.split() eg os.path.split('/home/swaroop/byte/code/poem.txt') 結果:('/home/swaroop/byte/code', 'poem.txt')
            分離擴展名:os.path.splitext()
            獲取路徑名:os.path.dirname()
            獲取文件名:os.path.basename()
            運行shell命令: os.system()
            讀取和設置環境變量:os.getenv() 與os.putenv()
            給出當前平臺使用的行終止符:os.linesep Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'
            指示你正在使用的平臺:os.name 對于Windows,它是'nt',而對于Linux/Unix用戶,它是'posix'
            重命名:os.rename(old, new)
            創建多級目錄:os.makedirs(r“c:\python\test”)
            創建單個目錄:os.mkdir(“test”)
            獲取文件屬性:os.stat(file)
            修改文件權限與時間戳:os.chmod(file)
            終止當前進程:os.exit()
            獲取文件大小:os.path.getsize(filename)
            ?
            ?
            目錄操作:

            os.mkdir("file") 創建目錄
            復制文件:
            shutil.copyfile("oldfile","newfile") oldfile和newfile都只能是文件
            shutil.copy("oldfile","newfile") oldfile只能是文件夾,newfile可以是文件,也可以是目標目錄
            復制文件夾:
            shutil.copytree("olddir","newdir") olddir和newdir都只能是目錄,且newdir必須不存在
            重命名文件(目錄)
            os.rename("oldname","newname") 文件或目錄都是使用這條命令
            移動文件(目錄)
            shutil.move("oldpos","newpos")
            刪除文件
            os.remove("file")
            刪除目錄
            os.rmdir("dir")只能刪除空目錄
            shutil.rmtree("dir") 空目錄、有內容的目錄都可以刪
            轉換目錄
            os.chdir("path") 換路徑

            pyhton文件操作函數:

            os.mknod("test.txt") 創建空文件
            fp = open("test.txt",w) 直接打開一個文件,如果文件不存在則創建文件
            關于open 模式:
            w 以寫方式打開,
            a 以追加模式打開 (從 EOF 開始, 必要時創建新文件)
            r+ 以讀寫模式打開
            w+ 以讀寫模式打開 (參見 w )
            a+ 以讀寫模式打開 (參見 a )
            rb 以二進制讀模式打開
            wb 以二進制寫模式打開 (參見 w )
            ab 以二進制追加模式打開 (參見 a )
            rb+ 以二進制讀寫模式打開 (參見 r+ )
            wb+ 以二進制讀寫模式打開 (參見 w+ )
            ab+ 以二進制讀寫模式打開 (參見 a+ )
            ?
            fp.read([size]) #size為讀取的長度,以byte為單位
            fp.readline([size]) #讀一行,如果定義了size,有可能返回的只是一行的一部分
            fp.readlines([size]) #把文件每一行作為一個list的一個成員,并返回這個list。其實它的內部是通過循環調用readline()來實現的。如果提供size參數,size是表示讀取內容的總長,也就是說可能只讀到文件的一部分。
            fp.write(str) #把str寫到文件中,write()并不會在str后加上一個換行符
            fp.writelines(seq) #把seq的內容全部寫到文件中(多行一次性寫入)。這個函數也只是忠實地寫入,不會在每行后面加上任何東西。
            fp.close() #關閉文件。python會在一個文件不用后自動關閉文件,不過這一功能沒有保證,最好還是養成自己關閉的習慣。 如果一個文件在關閉后還對其進行操作會產生ValueError
            fp.flush() #把緩沖區的內容寫入硬盤
            fp.fileno() #返回一個長整型的”文件標簽“
            fp.isatty() #文件是否是一個終端設備文件(unix系統中的)
            fp.tell() #返回文件操作標記的當前位置,以文件的開頭為原點
            fp.next() #返回下一行,并將文件操作標記位移到下一行。把一個file用于for … in file這樣的語句時,就是調用next()函數來實現遍歷的。
            fp.seek(offset[,whence]) #將文件打操作標記移到offset的位置。這個offset一般是相對于文件的開頭來計算的,一般為正數。但如果提供了whence參數就不一定了,whence可以為0表示從頭開始計算,1表示以當前位置為原點計算。2表示以文件末尾為原點進行計算。需要注意,如果文件以a或a+的模式打開,每次進行寫操作時,文件操作標記會自動返回到文件末尾。
            fp.truncate([size]) #把文件裁成規定的大小,默認的是裁到當前文件操作標記的位置。如果size比文件的大小還要大,依據系統的不同可能是不改變文件,也可能是用0把文件補到相應的大小,也可能是以一些隨機的內容加上去。
            ?
            ?
            相關例子

            1 將文件夾下所有圖片名稱加上'_fc'
            python代碼:

            復制代碼 代碼如下:
            # -*- coding:utf-8 -*-
            import re
            import os
            import time
            #str.split(string)分割字符串
            #'連接符'.join(list) 將列表組成字符串
            def change_name(path):
            global i
            if not os.path.isdir(path) and not os.path.isfile(path):
            return False
            if os.path.isfile(path):
            file_path = os.path.split(path) #分割出目錄與文件
            lists = file_path[1].split('.') #分割出文件與文件擴展名
            file_ext = lists[-1] #取出后綴名(列表切片操作)
            img_ext = ['bmp','jpeg','gif','psd','png','jpg']
            if file_ext in img_ext:
            os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext)
            i+=1 #注意這里的i是一個陷阱
            #或者
            #img_ext = 'bmp|jpeg|gif|psd|png|jpg'
            #if file_ext in img_ext:
            # print('ok---'+file_ext)
            elif os.path.isdir(path):
            for x in os.listdir(path):
            change_name(os.path.join(path,x)) #os.path.join()在路徑處理上很有用

            img_dir = 'D:\\xx\\xx\\images'
            img_dir = img_dir.replace('\\','/')
            start = time.time()
            i = 0
            change_name(img_dir)
            c = time.time() - start
            print('程序運行耗時:%0.2f'%(c))
            print('總共處理了 %s 張圖片'%(i))


            輸出結果:
            程序運行耗時:0.11
            總共處理了 109 張圖片

            希望本文所述對大家的Python程序設計有所幫助。


            更多文章、技術交流、商務合作、聯系博主

            微信掃碼或搜索:z360901061

            微信掃一掃加我為好友

            QQ號聯系: 360901061

            您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

            【本文對您有幫助就好】

            您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

            發表我的評論
            最新評論 總共0條評論
            主站蜘蛛池模板: 亚洲视频www | 国产91在线播放 | 毛片在线免费视频 | 色拍拍欧美视频在线看 | 精品久久久久久中文字幕女 | 日韩欧美一区二区在线观看 | 很黄的网站在线观看 | 欧美中文字幕在线播放 | 日韩3区| 国产精品乱码高清在线观看 | 中文国产成人精品久久一 | 欧美高清免费精品国产自 | 免费黄色福利视频 | 草草草在线观看 | 久久一色本道亚洲 | 伊人影院视频 | 在线视频一区二区日韩国产 | 国产成人久久一区二区三区 | 亚洲第一永久色 | 亚洲精品国产字幕久久不卡 | 久草热视频在线 | 久久中文字幕不卡一二区 | 天天操天天干天天玩 | 久久天堂一区二区三区 | 免费播放欧美毛片欧美aaaaa | 奇米影视第四色在线 | 亚洲国产精品日韩在线观看 | 国产精品免费视频一区 | 国产乱码视频 | 色中色资源站 | 99精品久久久久久久免费看蜜月 | 狼狼色丁香久久婷婷综合五月 | 中国明星一级毛片免费 | 日韩精品视频美在线精品视频 | 久 在线播放 | 亚洲综合色播 | 五月天婷婷一区二区三区久久 | 国产精品护士 | xxx中国毛茸茸 | 青青青国产深夜福利视频 | 亚洲精品综合一区二区 |