导航:首页 > 编程语言 > python查看工作目录

python查看工作目录

发布时间:2023-05-21 01:09:43

python遍历目录就是这么简单

有时我们有列出目录下都有哪些文件和子目录的需求,这种情况是有现成命令可用的,比如windows下的dir命令,linux下的ls命令都可以,那我们用python代码怎么实现呢?

我们利用python丰富的库很容易就能实现一个简易版本,下面我们就用4种方法来实现它。

一、使用os.popen

os.popen工作原理是新建一个子进程,然后用这个子进程执行命令,父进程与子进程间通过管道进行通信。

根据调用popen时的传参,我们可以通过管道读取子进程的输出也可以向子进程写数据,默认是读取子进程的输出。

从以上描述可以看出popen是非常通用的,不是只能用于我们这个例子哦。

那我们开始用它实现我们的需求吧,代码如下:

哈哈,是不是很简单,这种方式虽然能达到目的但其实并不是我们想要的,我们本来就是要实现ls的,结果调用了ls,所以严格意义上来说我们并没有实现ls,那让我们继续往下看其它方法吧,嘿嘿。

二、使用glob.glob

glob可以根据你使用的通配符对文件进行匹配,利用这个特性我们可以列出当前目录下都有哪些文件和子目录,如下代码:

三、使用os.listdir

os.listdir同样可以列出某个目录下都有哪些文件和子目录,如下代码:

四、使用os.walk

os.walk在遍历目录方面非常强大,它不但可以遍历你需要的目录,也可以递归遍历子目录且递归的深度可以用代码控制,下面让我们分别看下怎么遍历整个目录树以及怎么控制深度吧。

os.walk默认是遍历整个目录树的,如下代码就会递归打印出当前目录下所有文件:

那我们怎么控制遍历的深度,比如只遍历n层呢?其实很简单,只需要定义一个深度变量,然后到达n后跳出循环即可,如下代码就只遍历1层:

至此我们已经写完4种方法了,如果你还有其他方法,欢迎评论交流。

㈡ python文件名获取文件路径

概述

使用os.path.abspath()函数来获取文件绝对路径

解析

文件目录结构如下:

os.path.abspath(path)返回path规范化的绝对路径(但这个路径不一定是真实的路径),如果path仅是一个文件名,使用该函数后返回的路径是当前工作目录路径连接改文件名后所组成的新的路径名。

>>> import os.path

>>> os.path.abspath("a.py")

'C:\Users\Administrator\a.py'

os.path.split(path)将path分割成目录和文件名二元组返回

>>> os.path.split("C:\Users\Administrator\a.py")
('C:\Users\Administrator', 'a.py')

os.path.dirname(path)返回path的目录,其实就是os.path.split(path)的第一个元素

>>> os.path.dirname("C:\Users\Administrator\a.py")
'C:\Users\Administrator'

os.path.basename(path)返回path最后的文件名。如果path以/或结尾,就会返回空值。即os.path.split(path)的第二个元素。

>>> os.path.basename("C:\Users\Administrator\a.py")

'a.py'

os.path.commonprefix(list)返回list中所有path共有的最长的路径,从左向右,相同字符。

os.path.exists(path)如果path存在,返回True;如果path不存在,返回False。

os.path.isabs(path)如果path是绝对路径,返回True。

os.path.normpath(path)规范path字符串形式(规范文件路径)

os.path.isfile(path)判断路径是否为文件,是返回True,否则返回False

os.path.isdir(path)如果path是一个存在的目录,返回True,否则返货False。

os.path.islink(path)是否是链接;但如果系统不支持链接,则返回False。

㈢ python的test目录是什么文件

1.得到当前工作目录,即当前Python脚本工作的野悄目录路径: os.getcwd()
2.返回指定目录下的氏慎所有文件和目录名:os.listdir()
3.函数用来删歼脊敬除一个文件:os.remove()
4.删除多个目录:os.removedirs(r“c:\python”)
5.检验给出的路径是否是一个文件:os.path.isfile()
6.检验给出的路径是否是一个目录:os.path.isdir()
7.判断是否是绝对路径:os.path.isabs()
8.检验给出的路径是否真地存:os.path.exists()

㈣ 如何查看spyder的默认工作路径

查看spyder的默认工作路径的方法是:1、依次点击菜单栏中的【工具】、【首选项】;2、切换到【当前工作目录】栏目;3、找到【下列目录】选项,此处就是spyder的默认工作目录。

查看步骤:

(学习视频推荐:python视频教程)

1、打开spyder,依次点则宽敏罩击菜单栏中的孙拿亮Tools--->Preferences--->Current working directory;

2、然后选择最下面的单选按钮The following directory,此处就是spyder的默认工作路径,我们可以根据需要进行更改。

㈤ python--目录操作

一、os.getcwd()

获取当前工作目录,即当前Python脚本工作的目录路径。

二、os. chdir(path)

改变当前脚本工作目录;相当于shell下的cd命令。

三、os.pardir

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

四、获取当前使用的操作系统类型(其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix)。

五、os.mkdir(path [, mode=0777])

生成单级目录;相当于linux中的mkdir dirname。参数mode表示生成的目录的权限,默认是超级权限,也就是0777。如果重复创建,会报错

六、os.makedirs(path [, mode=0777])

可生成多层递归目录,父目录如果不存在,递归生成。参数mode表示生成的目录的权限,默认是超级权限,也就是0777。

七、os.removedirs(path)

若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推。

八、os.rmdir(path)

删除单级空目录,若目录不为空则无法删除,会报错;相当Linux中的rmdir dirname。

九、os.listdir(path)

列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式返回。

十、os.remove(filePath)

删除一个指定的文件,参数filePath表示文件所在的路径。

注意:该方法只能删除文件,不能删除目录。

十一、os.rename(oldname, newname)

重命名文件/目录。

十二、os.access(path, mode)

输出文件权限模式。

十三、os.chmod(path, mode)

修改文件的权限。

十四、os.walk(top, topdown=True, onerror=None, followlinks=False)

➢top:表示需要遍历的目录树的路径。

➢topdown的默认值是“True”,表示首先返回目录树下的文件,然后遍历目录树下的子目录。值设为False时,则表示先遍历目录树下的子目录,返回子目录下的文件,最后返回根目录下的文件。

➢onerror的默认值是“None”,表示忽略文件遍历时产生的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。

➢该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分别表示每次遍历的路径名,目录列表和文件列表。

➢默认情况下,os.walk 不会遍历软链接指向的子目录,若有需要请将followlinks设定为true

十五、os.path.split(path)

将path分割成目录和文件名(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),并存于元组中返回。

十六、os.path.exists(path)

判断path是否存在,如果存在返回True,否则返回False。

十七、os.path.isfile(path)

判断path是否是文件,如果是返回True,否则返回False。

十八、os.path.isdir(path)

判断path是否是目录,如果是目录返回True,否则返回False。

十九、os.path.getsize(name)

获得文件大小,如果name是目录返回结果是0L或者4096L;如果name代表的目录或文件不存在,则会报WindowsError异常。

二十、os.path.join(a, *p)

连接两个或更多的路径名,中间以“\”分隔,如果所给的参数中都是绝对路径名,那先给的绝对路径将会被丢弃。

二十一、os.path.getatime(filename)

返回文件的最后访问时间,返回的是时间戳。

二十二、os.path.getctime(filename)

以时间戳的形式返回文件或目录的创建时间,在Unix系统上是文件最近更改的时间,在Windows上是文件或目录的创建时间。

1.基础题:

    检验给出的路径是否是一个文件:os.path.isfile("D:\\test.txt")

    检验给出的路径是否是一个目录:os.path.isdir("D:\\test.txt")

    判断是否是绝对路径:os.path.isabs("D:\\test.txt")

    检验给出的路径是否真地存在:

2.返回一个路径的目录名和文件名 :os.listdir("D:\\")

3.分离文件名与扩展名 :os.path.splitext("D:\\test.txt")

4.找出某个目录下所有的文件,并在每个文件中写入“gloryroad” :

>>> for files in os.walk("D:\\test"):

...    print(files)

...

('D:\\test', [], ['a.txt', 'b.txt', 'test.txt', 'test1.txt'])

>>> with open("D:\\test\\a.txt","w+") as f:

...    f.write("gloryroad")

5.如果某个目录下文件名包含txt后缀名,则把文件后面追加写一行“被我找到了!”

6. 命题练习:

    1) 一个目录下只有文件(自己构造),拷贝几个文件(手工完成)

    2 )用listdir函数获取所有文件,如果文件的创建时间是今天,那么就在文件里面写上文件的路径、文件名和文件扩展名

    3) 如果不是今天创建(获取文件的创建时间,并转化为时间格式,判断是否今天),请删除

    4 )计算一下这个程序的执行耗时

7.删除某个目录下的全部文件

8.统计某个目录下文件数和目录个数

9.使用程序建立一个多级的目录,在每个目录下,新建一个和目录名字一样的txt文件

10. 查找某个目录下是否存在某个文件名

11. 用系统命令拷贝文件

12.输入源文件所在路径和目标目录路径,然后实现文件拷贝功能

13.遍历某个目录下的所有图片,并在图片名称后面增加

14、遍历指定目录下的所有文件,找出其中占用空间最大的前3个文件

15、过滤py源码中的#注释,另存为文件result.py,并执行result.py,断言是否执行成功

16、文件访问,提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.

17、从命令行接受1个路径如:c:\a\b\c\1.py, 实现1个函数创建目录a\b\c,创建文件1.py,实现1个函数删除已创建的目录及文件

18、有一个ip.txt,里面每行是一个ip,实现一个函数,ping 每个ip的结果,把结果记录存到ping.txt中,格式为ip:0或ip:1 ,0代表ping成功,1代表ping失败

19、实现DOS命令执行功能,接受输入命令并执行,然后把执行结果和返回码打印到屏幕

20、文件访问

    访问一存在多行的文件,实现每隔一秒逐行显示文本内容的程序,每次显示文本文件的 5行, 暂停并向用户提示“输入任意字符继续”,按回车键后继续执行,直到文件末尾。

    显示文件的格式为:[当前时间] 一行内容,比如:[2016-07-08 22:21:51] 999370this is test

㈥ python 怎么设置工作路径为当前目录

使用os包的chdir函数能够改变当前工作路径, linux和windows操作系统中并没有区别。 import os#获取当前工作目录>>>os.getcwd()#更改当前工作目录>>>os.chdir('d:\')>>>os.getcwd()

㈦ 如何用python查询文件路劲

最近在用Python脚本处理文件夹下面的文件名的搜索和重命名。其中碰到如何递归遍历文件夹下面所有的文件,找到需要的文件,并且重命名的问题。其实如果看看Python的document,还是比较简单的,这里直接给出使用方法,免得大家还要花精力去查找。

环境:
文件夹结构:
----path1
----path1-1
----path1-1.1.txt
----path1-2
----path1.1.txt
----path2
----recursiveDir.py
文件夹结构如上所示。

代码分析(recursiveDir.py):

[python] view plain
<span style="font-size:18px;">import os

'''''
本脚本用来演示如何遍历py脚本所在文件夹下面所有的文件(包括子文件夹以及其中包含的文件)。
重点演示如何获取每个文件的绝对路径。注意os.path.join(dirpath, filename)的用法。
'''

rootdir = os.getcwd()
print('rootdir = ' + rootdir)

for (dirpath, dirnames, filenames) in os.walk(rootdir):
#print('dirpath = ' + dirpath)
for dirname in dirnames:
print('dirname = ' + dirname)
for filename in filenames:
#下面的打印结果类似为:D:\pythonDirDemo\path1\path1-1\path1-1.1.txt
print(os.path.join(dirpath, filename))
if(filename=='path1-1.1.txt'):
os.chdir(dirpath)
#os.rename(os.path.join(dirpath, filename), dirpath + os.sep + 'path1-1.1.new.txt')
os.rename('path1-1.1.txt', 'path1-1.1.new.txt')
#os.remove(os.path.join(dirpath, filename))
#下面的输出为fileName = path1-1.1.txt,并未包含绝对路径,所以需要使用os.path.join来链接,获取绝对路径
print('fileName = ' + filename)
print('------------------one circle end-------------------')</span>

所以可以看到程序中使用os.path.join(dirpath, filename)来拼接出绝对路径出来。注意下面的重命名用法,可以将工作目录切换到os.chdir(dirpath),这样就可以直接用os.rename(oldfile, newfile).Python会自动到dirpath下面查找oldfile并且重命名为newfile。注意工作目录的含义:在Python的GUI中,使用os.getcwd()可以获取到当前工作目录。测试如下:

[html] view plain
<span style="font-size:18px;">>>> os.chdir('D:')
>>> os.getcwd()
'D:\\pythonDirDemo\\path1\\path1-1'
>>> os.chdir('D:\\')
>>> os.getcwd()
'D:\\'</span>

可见却是可以用chdir改变工作目录。这个代码只是在重命名的时候用到的小技巧而已,大家知道有这个东西就行了,不过调用chdir之后,后续再获取getcwd()就会被影响,所以警惕。

㈧ Python其实很简单 第十六章 目录管理

为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录。文件目录表目至少要包含文件名、文件的类型、文件的长度、访问权限、建立时间、访问时间和文件存储地址等内容。通过前面一章的介绍,我们已经知道在文件信息中已经包含了文件名、文件类型访问权限等信息,而存储地址的信息则包含在目录信息中。

16.1路径

路径通常用一个字符串来表示,可以按照路径信息定位到一个目录或文件。如:“C:UsersAdministratorPictures1.jpg”这个信息可以非常方便的找到这个图片文件,“C:UsersAdministratorPictures”这个信息可以帮助我们找到更多的图片文件。

这里所说的“路径”和上网时碰到的“地址”含义比较相似,互联网就相当于将个人电脑可以访问的范围扩大了,互联网中的地址也是对应某一个存储空间的路径,按照地址可以访问互联网上的信息,就如同按照路径可以找到计算机中的文件一样。

在Python中,可以导入 os模块 来进行目录操作。

1、获取当前工作目录getcwd()函数

例:

import os

print(os.getcwd())

运行结果:

C:

这个路径是当前Python IDLE所在的地址。

2、获取文件的绝对路径abspath()函数

abspath()函数是os模块的子模块path提供的一个函数。用法举例如下:

import os

print(os.path.abspath(r'test.txt'))

运行结果:

C: est.txt


16.2 目录操作类函数

1、判断目录是否存在exists()函数

exists()函数是os模块的子模块path中的函数。使用方法举例如下:

import os

print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))

输出结果:

True

2、创建目录mkdir()函数和makedirs()函数

mkdir()函数和makedirs()函数都是由os模块提供的,下面举例说明用法和区别。

例1:

import os

path='d:test'

if not os.path.exists(path):

os.makedirs(path)

print('该文件目录创建成功!')

如果目录d: est已存在,则不再创建;若不存在,则创建。

例2:

import os

path='d:testtest1test11'

if not os.path.exists(path):

os.makedirs(path)

print('该文件目录创建成功!')

虽然目录d: est已存在,但可以在其下继续创建子目录。上面的代码可以成功地创建d: est est1 est11目录。

mkdir()函数和makedirs()函数用法基本一样,不同之处在于mkdir()函数只能能创建一级目录。

3、删除目录函数rmdir()函数

rmdir()函数是由os模块提供的。

例如:通过上面的例子已经建立了d: est est1 est11目录,现在去删除子目录test11(此子目录为空目录),代码如下:

import os

os.rmdir('d:testtest1test11')

如果要删除的目录非空(其下还包含有文件或文件夹),则不能删除,并且出现Windows文件操作错误的提示(Python是调用操作系统命令完成文件和目录操作的)。譬如d: est目录下含有有子目录,则不能对其进行如下删除操作。

import os

os.rmdir('d:test')

此时,会出现如下错误提示:

Traceback (most recent call last):

File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in

os.rmdir('d:test')

OSError: [WinError 145] 目录不是空的。: 'd:test'


4、删除非空目录函数rmtree()函数

rmtree()函数是由Python内置的标准模块shutil提供的,可以删除目录及目录下的文件和子目录。如删除d: est目录及其下的子目录和文件,可用如下代码:

import shutil

shutil.rmtree('d:test')

5、遍历目录walk()函数

walk()函数是由os模块提供的。

语法格式:

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

其中,top是所要遍历的目录的地址;topdown为可选参数,为 True时自上而下遍历 目录,为False时自下而上遍历目录,默认值为True;onerror为可选参数,用于指定异常处理方式,默认为忽略;followlinks为可选参数,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

该函数的返回值为一个三元组(root,dirs,files)。root 所指的是当前正在遍历的这个文件夹的本身的地址;dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录);files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)。

例:遍历d: est目录及其子目录下的所有子目录和文件:

d: est目录及其下的子目录和文件

import os

path='d:test'

tups=os.walk(path) # 函数walk()的返回值为三元组


for root,dirs,files in tups: # 遍历这个三元组

for name in dirs: #遍历存放目录值的元组

print('dir:',os.path.join(root,name))

for name in files: #遍历存放文件名值的元组

print('file:',os.path.join(root,name))


运行结果如下:

dir: d: est est1

dir: d: est est1 est11

dir: d: est est1新建文件夹

file: d: est est1新建文本文档.txt

file: d: est est1 est11新建文本文档.txt

㈨ python 中怎么获取工作路径

importos

#:os.path.join(BASE_DIR,...)
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

可以参考django的方式。注意,若获取路径的文件位于项目根目录中,则需要剥掉一层os.path.dirname :

importos

#:os.path.join(BASE_DIR,...)
BASE_DIR=os.path.dirname(os.path.abspath(__file__))

㈩ R、python的文件夹操作

Python OS模块

1.重命名:os.rename(old, new)
2.删除:os.remove(file)
3.列出目录下的 文件 :os.listdir(path)
4.获取当前工作目录:os.getcwd()
5.改变工作目录:os.chdir(newdir)
6.创建多级目录:os.makedirs(r"c:/python /test")
7.创建单个目录:os.mkdir("test")
8.删除多个目录:os.removedirs(r"c:/python") #删除所给路径最后一个目录下所有空目录。
9.删除单个目录:os.rmdir("test")
10.获取文件属性:os.stat(file)
11.修改文件权限与时间戳:os.chmod(file)
12.执行操作系统 命令:os.system("dir")
13.启动新进程:os.exec(), os.execvp()
14.在后台执行程序:osspawnv()
15.终止当前进程:os.exit(), os._exit()
16.分离文件名:os.path.split(r"c:/python/ hello.py ") –> ("c://python", " hello.py ")
17.分离扩展名:os.path.splitext(r"c:/python/ hello.py ") –> ("c://python//hello", ".py")
18.获取路径名:os.path.dirname(r"c:/python/ hello.py ") –> "c://python"
19.获取文件名:os.path.basename(r"r:/python/hello.py") –> "hello.py"
20.判断文件是否存在:os.path.exists(r"c:/python/hello.py") –> True
21.判断是否是绝对路径:os.path.isabs(r"./python/") –> False
22.判断是否是目录:os.path.isdir(r"c:/python") –> True
23.判断是否是文件:os.path.isfile(r"c:/python/hello.py") –> True
24.判断是否是链接文件:os.path.islink(r"c:/python/hello.py") –> False
25.获取文件大小:os.path.getsize(filename)
26.*******:os.ismount("c://") –> True
27.搜索目录下的所有文件:os.path.walk()
[2.shutil]
1.复制单个文件:shultil.(oldfile, newfle)
2.复制整个目录树:shultil.tree(r"./setup", r"./backup")
3.删除整个目录树:shultil.rmtree(r"./backup")
[3.tempfile]
1.创建一个唯一的临时文件:tempfile.mktemp() –> filename
2.打开临时文件:tempfile.TemporaryFile()
[4.StringIO] #cStringIO是StringIO模块的快速实现模块
1.创建内存 文件并写入初始数据 :f = StringIO.StringIO("Hello world!")
2.读入内存文件数据:print f.read() #或print f.getvalue() –> Hello world!
3.想内存文件写入数据:f.write("Good day!")
4.关闭内存文件:f.close()

rm(list=ls())
path = 'J:/lab/EX29 --在R语言中进行文件(夹)操作'
setwd(path)
cat("file A\n", file="A") #创建一个文件A,文件内容是'file A','\n'表示换行,这是一个很好的习惯
cat("file B\n", file="B") #创建一个文件B
file.append("A", "B") #将文件B的内容附到A内容的后面,注意没有空行
file.create("A") #创建一个文件A, 注意会覆盖原来的文件
file.append("A", rep("B", 10)) #将文件B的内容复制10便,并先后附到文件A内容后
file.show("A") #新开工作窗口显示文件A的内容
file.("A", "C") #复制文件A保存为C文件,同一个文件夹
dir.create("tmp") #创建名为tmp的文件夹
file.(c("A", "B"), "tmp") #将文件夹拷贝到tmp文件夹中
list.files("tmp") #查看文件夹tmp中的文件名
unlink("tmp", recursive=F) #如果文件夹tmp为空,删除文件夹tmp
unlink("tmp", recursive=TRUE) #删除文件夹tmp,如果其中有文件一并删除
file.remove("A", "B", "C") #移除三个文件

阅读全文

与python查看工作目录相关的资料

热点内容
pdf阅读器删除 浏览:979
考研人如何缓解压力 浏览:822
买电暖壶哪个app便宜 浏览:505
洛克王国忘记服务器了怎么办 浏览:782
为什么cf登录服务器没反应 浏览:695
服务器如何获取文件列表 浏览:672
creo五轴编程光盘 浏览:14
苹果app网络验证在哪里 浏览:14
博科清空命令 浏览:384
简爱英文pdf 浏览:376
cnc编程有前途吗 浏览:586
联想app怎么联网 浏览:722
linuxftp命令登录 浏览:1000
android获取图片缩略图 浏览:646
神户制钢螺杆压缩机 浏览:29
差分演化算法 浏览:567
中山市加密软件 浏览:446
mc反编译源码 浏览:141
企业商城网站源码 浏览:411
shell脚本编程是什么 浏览:762