关于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中,当循环数大了就影响运行速度



 

Python读写文件的路径,关于os.chdir(path)位置对程序的影响,的更多相关文章

  1. [Python]读写文件方法

    http://www.cnblogs.com/lovebread/archive/2009/12/24/1631108.html [Python]读写文件方法 http://www.cnblogs.c ...

  2. python之文件操作模块(os和shutil)

      1.os.name #操作系统类型 如果是posix,说明系统是liunx.Unix或Mac OS X,如果是nt,就是windows2.os.enviro #操作系统中定义的环境变量3.os.e ...

  3. Python读写文件实际操作的五大步骤

    Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下面我们就详细介绍其应用程序. 一.打开文件 Pytho ...

  4. Python 读写文件的正确方式

    当你用 Python 写程序时,不论是简单的脚本,还是复杂的大型项目,其中最常见的操作就是读写文件.不管是简单的文本文件.繁杂的日志文件,还是分析图片等媒体文件中的字节数据,都需要用到 Python ...

  5. Python读写文件

    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...

  6. python的re模块一些方法 && Tkinter图形界面设计 && 终止python运行函数 && python读写文件 && python一旦给字符串赋值就不能单独改变某个字符,除非重新给变量赋值

    Tkinter图形界面设计见:https://www.cnblogs.com/pywjh/p/9527828.html#radiobutton 终止python运行函数: 采用sys.exit(0)正 ...

  7. Python 文件读写 文件和路径

    1.在Windows上,使用倒斜杆作为文件夹之间的分隔符,在Linux上,使用正斜杠作为路径分隔符.在编写Python脚本时,可以os.path.join()函数来处理 在Windows环境下命令如下 ...

  8. Python读写文件你真的了解吗?

    内容概述 Python文件操作 针对大文件如何操作 为什么不能修改文件? 你需要知道的基本知识 1. Python文件操作 这一部分内容不是重点,因为很简单网上很多,主要看看文件操作的步骤就可以了. ...

  9. python 读写文件和设置文件的字符编码

    一. python打开文件代码如下: f = open("d:\test.txt", "w") 说明:第一个参数是文件名称,包括路径:第二个参数是打开的模式mo ...

随机推荐

  1. python学习笔记之运算符

    目录 前言 软件环境 身份运算符 算术运算符 比较运算符 位移运算符 自变运算符 位运算符 逻辑运算符 成员关系运算符 Python真值表 最后 前言 在前面的博文介绍了Python的数据结构之后,接 ...

  2. Java基础语法<八> 继承

    1.超类和子类 超类和子类 父类与子类 多态: 一个对象变量可以指示多种实际类型的现象称为多态 一个变量可以引用父类对象,也可以引用其子类对象,这就是多态. 不能将一个超类的引用赋给子类变量,因为调用 ...

  3. pc端的企业网站(IT修真院test8)详解1-3

    一,base.css基础样式表的意义 我昨天,整理了一下代码规范. 发现现在这个程度的页面还原.有必要创建一个规范的base.css库和framework.css库 而且也要为日后的工作整理一些常用的 ...

  4. 关于sessionStorage的移动端兼容问题

    最近在开发移动端项目时,需要用到的本地存储的地方不少.都是一些只要记住当前打开窗口的用户数据就行,所以我选择用的sessionStorage.使用场景如下: A.html页面需要记录一条数据{a:1, ...

  5. ubuntu16.04安装不上有道词典的解决办法

    转自:http://www.linuxdiyf.com/linux/21143.html ubuntu16.04安装不上有道词典,提示: le@hu-pc:~/下载$ sudo dpkg -i you ...

  6. web开发之负载均衡的简单架构

    负载均衡 负载均衡的核心思想就是:请求分担 最简单的配置: 一台负载均衡服务器 两台webserver服务器 两台webserver服务器需要配置相同的服务器环境,设置相同的域名指向 负载均衡服务器需 ...

  7. Java之集合初探(二)Iterator(迭代器),collections,打包/解包(装箱拆箱),泛型(Generic),comparable接口

    Iterator(迭代器) 所有实现了Collection接口的容器都有一个iterator方法, 用来返回一个实现了Iterator接口的对象 Iterator对象称作迭代器, 用来方便的实现对容器 ...

  8. 【HTML】section

    1.  定义 标签定义文档中的节(section.区段).比如章节.页眉.页脚或文档中的其他部分. 2. div.section . article的区别 div: 本身没有任何语义,用作布局以及样式 ...

  9. <EffectiveJava>读书笔记--02泛型数组

    1, java中可以申明泛型类型的数组引用; 2, 但是不能实例化一个泛型数组对象; 3, 针对第二点, 可以曲线救国, 实例化一个Object数组, 再进行类型强转; 见代码如下: public c ...

  10. Linux 下 安装jdk 1.7

    Linux 下 安装jdk 1.7 参考百度经验 http://jingyan.baidu.com/album/ce09321b7c111f2bff858fea.html?picindex=6 第一步 ...