专栏首页python3python目录操作一

python目录操作一

目录操作

Python os 模块提供了一个统一的操作系统接口函数, 这些接口函数通常是平 台指定的,os 模块能在不同操作系统平台(如 nt 或 posix)中的特定函数间 自动切换,从而能实现跨平台操作。 python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil 模块。 引入该模块,import os

  • os.getcwd() 获取当前工作目录,即当前Python脚本工作的目录路径
import os
way = os.getcwd()
print way
D:\LEARN\ebook\python\Test
  • os. chdir(path) 改变当前脚本工作目录;相当于shell下的cd命令
workPath = os.getcwd()
print u"当前工作目录:", workPath
#改变工作目录
os.chdir('D:\LEARN\ebook\python')
print u"改变后的工作目录:", os.getcwd()

结果: 当前工作目录: D:\TOOL\PycharmProjects\python\December 改变后的工作目录: D:\LEARN\ebook\python

os.pardir 返回当前目录的父目录('..')

os.name 获取当前使用的操作系统类型: print os.name 'nt' (其中 ‘nt’ 是 windows,’ posix’ 是 linux 或者 unix)

os.mkdir os.makedirs(path [, mode=0777]) 可生成多层递归目录,父目录如果不存在,递归生成。 参数mode表示生成的目录的权限,默认是超级权限,也就是0777。 代码示例: #encoding=utf-8 import os os.makedirs(r'c:\gloryroad\test') 执行结果: 在c盘录下生成gloryroad目录,并在目录下新建test目录

os.popen(command [, mode='r' [, bufsize]]) 运行shell命令,并返回一个文件对象。然后通过操作文件的方法去操作这个 文件对象。

encoding=utf-8
import os
dirList = os.popen('dir d:\\test*.*')
for i in dirList.readlines() :
print 
  • os.walk(top, topdown=True, onerror=None, followlinks=False)

参数说明: top:表示需要遍历的目录树的路径。 topdown的默认值是“True” ,表示首先返回目录树下的文件,然后遍历目录树下的 子目录。值设为False时,则表示先遍历目录树下的子目录,返回子目录下的文件,最后 返回根目录下的文件。 onerror的默认值是“None” ,表示忽略文件遍历时产生的错误。如果不为空,则提 供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。 该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分别表 示每次遍历的路径名,目录列表和文件列表。 默认情况下,os.walk 不会遍历软链接指向的子目录,若有需要请将followlinks设定为 true

获取目录下所有目录多少,文件多少

#encoding=utf-8
import os

for root, dirs, files in os.walk("e:\\test2",topdown=False) :
    print u“当前目录:",root #打印目录绝对路径
    for name in files :
        print u'文件名:',os.path.join(root,name) #打印文件绝对路径

    for name in dirs :
        print u'目录名:',name #打印目录绝对路径
directory = 0
filename = 0
for root, dirs, files in os.walk("E:\syswin\\nmon_report", topdown=False):
    print u"当前目录:", root  # 打印目录绝对路径
    for name in files:
        print u'文件名:', os.path.join(root, name)  # 打印文件绝对路径
        filename += 1
    for name in dirs:
        print u'目录名:', name  # 打印目录绝对路径
        directory += 1
print "目录名有:",directory,"个"
print "文件名有:",filename,"个"

练习1:找到文件1.txt所在的绝对路径

#encoding=utf-8
import os

for root, dirs, files in os.walk("e:\\test2",topdown=False) :
    #print u"当前目录:",root #打印目录绝对路径
    for name in files :
        #print u'文件名:',os.path.join(root,name) #打印文件绝对路径
        if name.decode("gbk") == u"文件1.txt":
            print u'文件名:',os.path.join(root,name)

练习2:统计一下test2下的所有子目录有几个,一共有多少个文件

#encoding=utf-8
import os

dir_num=0
file_num=0

for root, dirs, files in os.walk("e:\\test2",topdown=False) :
    #print u"当前目录:",root #打印目录绝对路径
    for name in files :
        file_num+=1

    for dir in dirs:
        dir_num+=1

print "file number:",file_num
print "dir number:",dir_num

统计目录下:“.txt”

file_name = 0
for root, dirs, files in os.walk("E:\syswin\\nmon_report", topdown=False):
    # print u"当前目录:",root #打印目录绝对路径
    for name in files:
        if ".txt" == name[-4:]:
            file_name += 1
print file_name

把一个目录下的所有文件名,打印一下,注意不要包含后缀名

file_names = []
for root, dirs, files in os.walk("E:\syswin\\nmon_report", topdown=False):
    # print u"当前目录:",root #打印目录绝对路径
    for name in files:
        file_names.append(os.path.splitext(name)[0])

for i in file_names:
    print i

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • robot framework笔记(三):扩展SeleniumLibrary库 (自定义关键字)

    以下代码GitHub 版本库地址: https://github.com/blairwind/blog_rf

    free赖权华
  • 目标检测算法之SSD的数据增强策略

    这篇文章是对前面《目标检测算法之SSD代码解析》,推文地址如下:点这里的补充。主要介绍SSD的数据增强策略,把这篇文章和代码解析的文章放在一起学最好不过啦。本节...

    BBuf
  • Kotlin 从拒绝到真香

    我在组内推广 Kotlin 遇到不少挑战,虽然我自己觉得它确实是一门优秀的语言,有着丰富的特性,能提高我们开发效率,减少 bug 的出现,但同事们并不觉得。而且...

    sickworm
  • 厉害了!Python+matplotlib制作8个排序算法的动画

    深刻研究排序算法是入门算法较为好的一种方法,现在还记得4年前手动实现常见8种排序算法,通过随机生成一些数据,逐个校验代码实现的排序过程是否与预期的一致,越做越有...

    double
  • ML学习笔记之Jupyter Notebook各种使用方法

    保存后在cmd中输入:jupyter notebook,会自动触发默认浏览器打开jupyter

    Jetpropelledsnake21
  • robot framework笔记(二):在RF中自定义chrome启动参数

    在RF的登录中引用这个自定义的关键字,执行的时候如果提示找不到关键字GET CHROME OPTIONS,加一个环境变量PYTHONPATH, value就是p...

    free赖权华
  • 还能这样?把 Python 自动翻译成 C++

    随着深度学习的广泛应用,在搜索引擎/推荐系统/机器视觉等业务系统中,越来越多的深度学习模型部署到线上服务。

    jeanron100
  • 简单使用了下scrapy爬虫工具

    前天一番写了《用爬虫看看我们工作的”前途“》,里面收集了52job上在深圳的”前端“和”区块链“两个关键字的职位信息。

    efonfighting
  • python中的yield

    上一篇一番简单介绍了下scrapy工具的使用,深入时一番发现,yield这个关键字在很多scrapy的例子和教程里用的特别多。所以今天我们来研究下yield到底...

    efonfighting
  • 生成Python函数一半没问题,当前最「正统」的代码生成是什么样的?

    开发者写代码,和数学家写公式一样是非常自然的一件事。开发者将完成某个任务的步骤和逻辑,一行行写成代码,并期待达到预定的效果。数学家从某个事实出发,将思考过程一行...

    机器之心

扫码关注云+社区

领取腾讯云代金券