Python讀寫文件的路徑,關於os.chdir(path)位置對程序的影響,


關於os.chdir(path)位置對程序的影響,
import
os import time
#直接把path放到open()里面
def fu0(): star = time.time() for i in range(100): p = os.listdir('E:/pythontxt/PDF文字提取/') for each in p: with open('E:/pythontxt/PDF文字提取/'+each,'rb') as o: o.readline() print('完成') end = time.time() print(end - star)

#os.chdir(path)放到最里層的for
def fu1(): star = time.time() for i in range(100): p = os.listdir('E:/pythontxt/PDF文字提取/') for each in p: os.chdir('E:/pythontxt/PDF文字提取/') with open(each,'rb') as o: o.readline() print('完成') end = time.time() print(end - star)
#os.chdir(path)放到次層的for   

def fu2():
 star = time.time() for i in range(100): os.chdir('E:/pythontxt/PDF文字提取/') p = os.listdir('E:/pythontxt/PDF文字提取/') for each in p: with open(each,'rb') as o: o.readline() print('完成') end = time.time() print(end - star) 
#os.chdir(path)放到最外層的for
def fu3(): star = time.time() os.chdir('E:/pythontxt/PDF文字提取/') for i in range(100): os.chdir('E:/pythontxt/PDF文字提取/') p = os.listdir('E:/pythontxt/PDF文字提取/') for each in p: with open(each,'rb') as o: o.readline() print('完成') end = time.time() print(end - star)

#每個運行2次估計平均值 fu0() fu0() fu1() fu1() fu2() fu2() fu3()
fu3()

#先在文件夾下寫1000個txt

import
os os.chdir('E:/pythontxt/PDF文字提取/') for i in range(1000): with open(str(i)+'.txt','w') as o: o.write(str(i))
 
         


結果

完成
6.512665510177612
完成
6.204932689666748
完成
10.26894736289978
完成
10.360546112060547
完成
5.979380369186401
完成
5.968496799468994
完成
5.956638336181641
完成
5.928236722946167

 

fu0():可以看出直接把path寫到open()中速度比較快,

fu1():os.chdir(path)放到最里層的for中 速度最慢,存在反復執行os.chdir(path);

fu2()和fu3()差別不大略比fu0()快一丟丟,是應為for只進行了100個循環,當循環數大了fu3()比fu2()節省時間;

所以一般不要把一些不需要調用的放到for中,當循環數大了就影響運行速度



 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM