Python OS

>>> os.getcwd() <<<获取当前文件夹路径
'C:\Users\fengx\Desktop\python\1012_basic'
>>> os.listdir() <<<列出当前路径下所有文件和文件夹
['1.py', '2.py', '29_1.py', '3.py', 'file', 'haha.txt', '通讯录程序.py']
>>> os.path.isdir('file') <<<判断是否是文件夹,只能判断当前路径下的文件是否为文件夹(此处需要特别注意,如果要判断文件夹时,要chdir到要判断的路径下才可以)
True
>>> os.path.isdir('1.py') <<<
False
>>> os.pardir <<<返回上一级目录
'..'
>>> os.listdir() 
['1.py', '2.py', '29_1.py', '3.py', 'file', 'haha.txt', '通讯录程序.py']
>>> os.getcwd() 
'C:\Users\fengx\Desktop\python\1012_basic'
>>> os.sep <<<分隔符
'\'
>>> os.chdir('C:/Users/fengx/Desktop/python/1012_basic/') <<<修改目录
>>> os.curdir <<<当前目录
'.'
>>> os.pardir <<<
'..'
>>> os.path.isdir('file')
True
>>> os.path.isdir('1.py')
False
>>>

>>> os.path.splitext('uuid.py')[1] <<<splitext,把参数分割成元组tuple

'.py'

#######################os.walk()########################

os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。

在Unix,Windows中有效。

语法

walk()方法语法格式如下:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

参数

  • top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。

  • topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。

  • onerror -- 可选, 需要一个 callable 对象,当 walk 需要异常时,会调用。

  • followlinks -- 可选, 如果为 True,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)。

返回的三元组:

root 所指的是当前正在遍历的这个文件夹的本身的地址

dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)

files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)

范例:

>>> a=os.walk(os.getcwd())
>>> a
<generator object walk at 0x0682FEB0>
>>> os.getcwd()
'C:\Users\fengx\Desktop\python\1012_basic'
>>> a
<generator object walk at 0x0682FEB0>
>>> for i in a:
    print(i)

    
('C:\Users\fengx\Desktop\python\1012_basic', ['file'], ['1.py', '2.py', '29_1.py', '3.py', '30.py', '30_0.py', '30_1.py', '30_2.py', '30_4.py', '34.py', 'haha.txt', '通讯录程序.py'])
('C:\Users\fengx\Desktop\python\1012_basic\file', [], ['haha.txt', 'haha1.txt', 'haha2.txt'])

在Windows的路径C:/Users/fengx/Desktop/python/1012_basic下,存在一堆.py文件和一个叫file的文件夹,file文件夹下没有其他文件夹了,只有haha.txt等txt文件

因为返回的dirs和files都是列表形式,且dirs是i[1],files是i[2],则我们可以通过for循环,获取文件夹下的文件夹名称和文件名称

 ################################

import easygui as g
import os

file_path = g.fileopenbox(default='*.txt')

with open(file_path) as f:
    title=os.path.basename(file_path)
    msg='文件【%s】的内容如下:'%title
    text=f.read()
    g.textbox(msg,title,text)
title=os.path.basename(file_path)
此处的os.path.basename只会显示文件名

>>> title
'新建文本文档.txt'
>>> file_path
'C:\Users\fengx\Desktop\python\exersice\小甲鱼课后习题\35\新建文本文档.txt'
>>>

 ##########################################

>>> import os
>>> data = os.popen('ipconfig').read()
>>> print(data)

  得到windows的ipconfig的内容

只要是命令行能敲的,都可以用python做自动化

原文地址:https://www.cnblogs.com/vigossr/p/9803647.html