当前位置:首页 » 编程语言 » python多级目录

python多级目录

发布时间: 2023-01-29 14:27:23

‘壹’ python导入上一级/下一级/任一级目录下的.py文件问题

有如下目录:

即python文件夹下有file1, file2, pfile.py, data.py,文件夹file1下又有file1_1, pfile1.py, 文件夹file2下有pfile2.py,文件夹file1_1下又有pfile1_1.py。

在文件pfile.py中导入pfile1.py, pfile2.py或 pfile1_1.py,并使用其中的函数(假设函数名分别文fun1(), fun2(), fun1_1()):

需要注意的是,这种导入方式下,如果要用导入的文件中的函数或者类,需要在其前面加上文件名,即 "文件名.函数名" 的形式

有些教程里面说,需要在下一级目录下新建一个空的python文件命名为 __init__.py,但我在运行时发现不建一个文件也会导入成功。

如果要在pfile1.py中调用pfile.py 和 pfile2.py,因为当前路径是 '/home/puxitong/python/file1/' ,而 pfile.py和pfile1.py在路径'/home/puxitong/python/' 及其子路径下,这里的思路是将上一级目录 '/home/puxitong/python/' 添加在系统路径中,可以直接访问pfile.py,然后将pfile2.py 按照下一级路径导入方式进行导入:

如果要在pfile1_1.py中导入pfile.py, pfile1.py, pfile2.py呢? 原理是一样的,即将文件pfile.py所在路径添加到系统路径中,可直接导入pfile.py, 再按照下级文件导入方式导入pfile1.py和pfile2.py:

‘贰’ python怎样创建多级目录

具体实现方法如下:
import os
os.makedirs( "/home/jb51/data" )

这样就可以创建一个三级目录。

‘叁’ 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创建文件夹

首先可以用Python的os模块中的exists来判断目录是否存在。
python学习网,大量的免费python视频教程,欢迎在线学习!
相关推荐:《Python教程》
如果目录或者是文件存在则os便会返回TRUE的结果。
创建目录可以先用getcwd取得当前目录之后再拼接目录名称即可创建文件夹了。
Python的os模块中的mkdir也可以直接用绝对路径来创建出一个空的文件夹。
如果想要创建多级目录则要用到os模块中的makedirs才行。

python学习网,大量的免费python视频教程,欢迎在线学习!

‘伍’ 自学Python:查看文件夹及子目录所有文件路径

使用路径对象glob()函数和rglob()函数,可以查看指定路径下的文件和子文件夹,两者的区别在于,glob()函数只进行一级查找,而rglob()函数会进行多级查找。

from pathlib import Path

p = Path('d:\\文件夹\\')

r = p.glob('*')

for i in r:

    print(i) #显示glob()函数的结果

print('-' * 25) #这里是分割线

r = p.rglob('*')

for i in r:

    print(i)#显示rglob()函数的结果

查看对应结果如下:

d:\11\11.txt

d:\11\r.mp3

d:\11\t.mp3

d:\11\tp1000

d:\11\文件夹

-------------------------

d:\11\11.txt

d:\11\r.mp3

d:\11\t.mp3

d:\11\tp1000

d:\11\文件夹

d:\11\文件夹\文档.txt

________________END______________

‘陆’ python怎么用递归遍历多层目录树

#coding=utf-8
search_id = '69d0'
search_list = [{'id':'0337', 'name':'de', 'parent_id':'None'},
{'id':'2ddf', 'name':'se', 'parent_id':'None'},
{'id':'3010', 'name':'12', 'parent_id':'69d0'},
{'id':'3119', 'name':'121', 'parent_id':'3010'},
{'id':'3229', 'name':'1211', 'parent_id':'3119'},
{'id':'3d37', 'name':'14', 'parent_id':'69d0'},
{'id':'58c8', 'name':'11', 'parent_id':'69d0'},
{'id':'63b9', 'name':'a','parent_id':'None'},
{'id':'954c', 'name':'n', 'parent_id':'63b9'},
{'id':'69d0', 'name':'1', 'parent_id':'954c'},
{'id':'d2f9', 'name':'13', 'parent_id':'69d0'},
{'id':'defb', 'name':'test', 'parent_id':'None'}]
search_ids = []
#例如如果search_id = '69d0' search_ids=[3010,3d37,58c8,d2f9,3119,3229]

def search_pid(pid,id_list,id_results):
for id in id_list:
if id['id'] not in id_results:
if id['parent_id'] in pid:
id_results.append(id['id'])
pid.append(id['id'])
search_pid(pid,id_list,id_results)

search_pid([search_id],search_list,search_ids)
print search_ids

热点内容
什么配置单反拍视频最好 发布:2024-05-05 00:30:56 浏览:477
sql敏感 发布:2024-05-05 00:28:20 浏览:62
android工程师笔试 发布:2024-05-05 00:10:52 浏览:948
python调试pycharm 发布:2024-05-05 00:10:51 浏览:707
索尼电脑vaio忘了密码如何恢复出厂设置 发布:2024-05-05 00:09:56 浏览:895
安卓系统的用户管理在哪里 发布:2024-05-04 23:12:27 浏览:430
我的世界服务器推荐电脑版免费 发布:2024-05-04 23:04:46 浏览:395
c程序如何编译 发布:2024-05-04 22:58:05 浏览:932
苹果手机怎么查看id密码 发布:2024-05-04 22:54:49 浏览:658
家有三相电如何配置音响设备 发布:2024-05-04 22:53:42 浏览:56