Python基础实例 (3)


module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件内容可以为空.这个层次结构如下所示:

parent 
  --__init_.py
  --child
    -- __init_.py
    --a.py

b.py


那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:

import sys

print(sys.path)


通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path 中:

import sys
import os
sys.path.append(os.getcwd()+\'\\parent\\child\')

print(sys.path)

from a import add_func


print (sys.path)

print ("Import add_func from module a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2))


知识点:

如何定义模块和包 

如何将模块路径添加到系统路径,以便python找到它们 

如何得到当前路径

12 内建帮助手

对比C++,Java的突出进步是内建Javadoc机制,程序员可以通过阅读Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考.

dir函数: 查看某个类/对象的方法. 如果有某个方法想不起来,请敲dir. 在idle里,试试 dir(list)

help函数: 详细的类/对象介绍. 在idle里, 试试 help(list)

1 遍历文件夹和文件 

import  os
import  os.path
#  os,os.path里包含大多数文件访问的函数,所以要先引入它们. 
#  请按照你的实际情况修改这个路径 
rootdir  =   " d:/download " 
for  parent, dirnames, filenames  in  os.walk(rootdir):
     # case 1: 
     for  dirname  in  dirnames:
         print  ( " parent is: "   +  parent)
         print  ( " dirname is: "   +  dirname)
     # case 2 
     for  filename  in  filenames:
         print  ( " parent is: "   +  parent)
         print  ( " filename with full path : "   +  os.path.join(parent, filename))

\'\'\' 知识点:

    * os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录.
    * case1 演示了如何遍历所有目录.
    * case2 演示了如何遍历所有文件.
    * os.path.join(dirname,filename) : 将形如"/a/b/c"和"d.java"变成/a/b/c/d.java".
\'\'\' 

2 分割路径和文件名 

import  os.path
# 常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名. 
# 根据你机器的实际情况修改下面参数. 
spath = " D:/download/repository.7z " 

#  case 1: 
p,f = os.path.split(spath);
print ( " dir is: " + p)
print ( " file is: " + f)

#  case 2: 
drv,left = os.path.splitdrive(spath);
print ( " driver is: " + drv)
print ( " left is: " + left)
#  case 3: 
f,ext = os.path.splitext(spath);
print ( " f is: " + f)
print ( " ext is: " + ext)
\'\'\' 
    知识点:    这三个函数都返回二元组.
    * case1 分隔目录和文件名
    * case2 分隔盘符和文件名
    * case3 分隔文件和扩展名
\'\'\' 



总结:5个函数 

os.walk(spath)

os.path.split(spath)

os.path.splitdrive(spath)

os.path.splitext(spath)

os.path.join(path1,path2)

3 复制文件 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwdgs.html