精华内容
下载资源
问答
  • 本文实例讲述了Python创建模块及模块导入的方法。分享给大家供大家参考。具体分析如下: python学习手册中写道: 定义模块,只要使用文本编辑器,把一些python代码输入到文本中,然后以.py为后缀名进行保存,任何...
  • Python创建模块与配置

    2020-07-20 17:53:44
    Python创建模块与配置22 创建自己的模块22.1 自己模块22.2 配置模块搜索路径 22 创建自己的模块 模块,通常是一个含有源代码的文件文件里有设计好了的函数、类、变量或者类的对象等内容。模块的作用是有效地避免多...

    22 创建自己的模块

    模块,通常是一个含有源代码的文件,文件里有设计好了的函数、类、变量或者类的对象等内容。模块的作用是有效地避免多源代码文件的大项目时函数名、变量名、类名等程序基本要素的名字冲突问题,在一个多文件的大工程的不同模块文件里可以在不同的文件里出现相同的变量名、函数名、类名等。那一个工程如何区分不同模块里的变量名、类名、函数名呢?语法格式如下:

    模块名.变量名
    模块名.函数名
    模块名.类名
    

    即使用点运算(.),每个包含源代码的文件名(不含.py)做为模块名。引用非重名的变量、函数、类等也是这样通过点运算来引用的。

    举例说明,list列表和tuple元组都有index函数,都是Python内建模块和函数,日常使用时是直接通过该类型的变量(本质是类的对象)点运算调用各自类(后续章节会讲类的知识)的index函数,其实也可以通过list.index或者tuple.index的方式来使用。

    a = range(10)
    print a
    print a.index(3)
    print list.index(a, 3)
    t = tuple(a)
    print t
    print t.index(3)
    print tuple.index(t, 3)
    

    程序执行结果:

    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    3
    3
    (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    3
    3
    

    22.1 自己模块

    在理解了Python的模块的意义、用途和使用方式之后,可以考虑自己如何编写模块、使用和配置模块等问题。

    下面以编写求整数加、减法模块为例讲解模块的创建和基本使用。模块文件myam.py源代码如下所示:

    def add(x, y):
        return x + y
    def minus(x, y):
        return x - y
    

    另为编写一个使用myam模块(注意模块名不含.py)的程序testam.py,请将模块文件myam.py和使用模块的文件testam.py暂时放在同一个目录下,如下所示:

    liao@liao:~/md/module$ tree
    .
    ├── myam.py
    ├── myam.pyc
    └── testam.py
    
    0 directories, 3 files
    liao@liao:~/md/module$ 
    

    使用模块myam的testam.py的代码如下所示:

    import myam
    print myam.add(13, 10)
    print myam.minus(13, 10)
    

    由于在非模块文件里引入某模块的方式很多,所以testam.py的编写方式很多,例如:

    from myam import add, minus
    print add(13, 10)
    print minus(13, 10)
    

    程序执行完毕后请看一下模块所在目录下是否多了一个文件?是的多了一个和模块文件同名的.pyc文件,对这个文件是在第一次使用模块时Python自动编译生成,删除了模块源文件.py留下模块的.pyc文件,使用模块的testam.py同样能正常运行,故模块开发好以后可以不提供源文件只提供.pyc文件,算是一种自我的知识产权的保护?呵呵。

    22.2 配置模块搜索路径

    在前一节,为了展示模块的开发和使用,暂时将模块文件和使用模块的文件放置在了同一个目录下,问题就来了,如果模块文件和使用模块的文件不在同一目录下会怎样?大家可以做一个简单的实验,将使用模块的文件放在另一个目录下,运行程序看会怎样?

    liao@liao:~/md$ tree test
    test
    ├── module
    │   ├── myam.py
    │   └── myam.pyc
    └── testam.py
    1 directory, 3 files
    liao@liao:~/md$
    

    是的程序运行时会报错找不到模块,平时使用的其他模块时例如csv、random也没要求这些模块和使用程序必须在同一个目录下啊,显然这里会有一些问题,怎么解决?

    实际上无论是标准模块还是自己写的模块,使用模块的程序是按照某种规则(实际是一些目录)去寻找模块,按照所有已知规则如果找不到才会报错模块找不到,解决办法就是让Python能找到新写的模块即可。

    有几种方式可以让Python找到新写的这个模块。

    方式一:新模块拷贝到标准目录下

    第一种就是把新写的模块的.py拷贝一份放在规则可以找到的地方(目录),这样做很简单,但缺点是会产生垃圾,系统移植性不好,故建议这么去做。

    方式二:修改sys.path环境变量

    第二种方式是使用模块的文件通过修改sys模块path变量(列表),添加新建模块的保存路径,这种方式不会产生系统垃圾,但移植到另外一台计算机上修要根据实际修改模块存在的路径,修要调整程序,移植性差点儿。

    import sys
    dirm = "/home/liao/md/test/module"
    sys.path.append(dirm)
    print sys.path
    import myam
    print myam.add(12, 15)
    

    当程序和模块移植到其他计算机上需要修改模块所在目录dirm。

    方式三:修改PYTHONPATH环境变量

    第三种方式是修改系统的环境变量,Linux用户需要修改PYTHONPATH,shell里执行:

    liao@liao:~/md/test/module$ export PYTHONPATH=/home/liao/md/test/module:$PYTHONPATH
    liao@liao:~/md/test/module$ cd ..
    liao@liao:~/md/test$ python testam.py 
    23
    3
    

    但是问题来了,这只是针对一个模块,如果一台计算机机上要运行很多的自己写的模块,那么这个PYTHONPATH变量修要写很多的目录,移植性差。而且在shell里修改PYTHONPATH只是在当前Shell里有用,重新开一个Shell就不起作用了.

    liao@liao:~$ cd md
    liao@liao:~/md$ cd test/
    liao@liao:~/md/test$ python testam.py 
    Traceback (most recent call last):
      File "testam.py", line 1, in <module>
        import myam
    ImportError: No module named myam
    liao@liao:~/md/test$ echo $PYTHONPATH
    
    liao@liao:~/md/test$ 
    

    解决办法是在~/.bashrc里写一条export PYTHONPATH=/home/liao/md/test/module:$PYTHONPATH后每次启动shell就能找到myam模块了,尽管解决了一点问题那也移PYTHONPATH,如果windows下系统变量没有,新建,把模块目录作为该变量的值value,这可参考windows的Path环境变量windows的Path环境变量 来做一做。

    方式四:.pth文件

    第四种,也是个人觉得最好的方式,将模块的目录统一管理,存放在一个.pth文件里.pth文件里 。

    (1)Windows用户可以在c:\python27或者c:\python27\site-packages目录下新建一个.pth文件,例如mypkpath.pth,在这个文件里添加模块所在目录。

    (2) ubuntu用户,在/usr/local/lib/python2.7/dist-packages目录下创建.pth文件,在.pth文件里记录新建模块的路径。

    (3)redhat用户,在/usr/lib/python2.7/site-packages目录下创建.pth文件,在.pth文件里记录新建模块的路径。

    liao@liao:~/md/test$ cd /usr/local/lib/python2.7/dist-packages
    liao@liao:/usr/local/lib/python2.7/dist-packages$ sudo touch mypkpath.pth
    [sudo] liao 的密码: 
    liao@liao:/usr/local/lib/python2.7/dist-packages$ ls *.pth
    mypkpath.pth
    liao@liao:/usr/local/lib/python2.7/dist-packages$ 
    

    将模块目录添加到该文件里:

    liao@liao:/usr/local/lib/python2.7/dist-packages$ cat mypkpath.pth 
    /home/liao/md/test/module
    liao@liao:/usr/local/lib/python2.7/dist-packages$ cd 
    liao@liao:~$ cd md/
    liao@liao:~/md$ cd test/
    liao@liao:~/md/test$ ls
    module  testam.py
    liao@liao:~/md/test$ python testam.py 
    23
    3
    liao@liao:~/md/test$ 
    

    方式四的操作方式最好,值得推荐!

    展开全文
  • 1.自己写入txt直接上核心代码:withopen("douban.txt","w")asf:f.write("这是个测试!")1212这句话自带文件关闭功能,...将文件输入(print)的内容写入txt#分模块测试,txt写入测试#-*...

    1.自己写入txt

    直接上核心代码:with open("douban.txt","w") as f:

    f.write("这是个测试!")1212

    这句话自带文件关闭功能,所以和那些先open再write再close的方式来说,更加pythontic!

    结果就是这样:

    2.将文件输入(print)的内容写入txt#分模块测试,txt写入测试# -*- coding: utf-8 -*-from selenium import webdriverimport selenium.webdriver.support.ui as uiimport time#driver_item=webdriver.Firefox()driver_item=webdriver.PhantomJS(executable_path="phantomjs.exe")

    url="https://movie.douban.com/subject/3541415/?tag=%E7%A7%91%E5%B9%BB&from=gaia_video"wait = ui.WebDriverWait(driver_item,10)

    driver_item.get(url)try:

        driver_item.find_element_by_xpath("//img[@class='bn-arrow']").click()    #wait.until(lambda driver: driver.find_element_by_xpath("//div[@class='review-bd']/div[2]/div/div"))

    time.sleep(1)

    comments_deep = driver_item.find_element_by_xpath("//div[@class='review-bd']/div[2]/div")    print u"深度长评:"+comments_deep.text    #print type(comments_deep.text)#

    comments_wr=comments_deep.text.encode('utf-8')    #print type(comments_wr)#

    #title="盗梦空间"#中文命名文件名乱码,内容可用    title="Inception"

    with open("%s.txt"%title,"w") as f:#格式化字符串还能这么用!

    for i in comments_wr:

    f.write(i)except:    print 'can not caught the comments!'123456789101112131415161718192021222324252627282930123456789101112131415161718192021222324252627282930

    比较常用MODE

    不清空连续写入

    没有文件时候会自动创建的,但是!如果我重新对此进行写入,那么会先清空,然后再写,就是说以前写的没了,这样搞不好吧,我可是要记录很多东西的啊,万能的a出现了。。。

    把核心代码改成这样就可以了,记得把w改成a,至于那个分割线问题,因为后续写入和前面已经有的会混在一块,所以我做分割用:with open("%s.txt"%title,"a") as f:#格式化字符串还能这么用!

    f.write(" -------------------------------------我是分割线----------------------------------------- ")        for i in comments_wr:

    f.write(i)12341234

    效果是这样的,不够好看自己再加细节,比如换行多几次

    That’s all

    展开全文
  • python os模块 创建文件

    2019-03-04 21:53:05
    ![图片说明](https://img-ask.csdn.net/upload/201903/04/1551707511_172254.png) 在F盘里看了,根本没有文件,为什么会出现这种情况呢,pycharm已经重启了,还是这样。
  • 1.自己写入txt直接上核心代码:withopen("douban.txt","w")asf:f.write("这是个测试!")1212这句话自带文件关闭功能,...将文件输入(print)的内容写入txt#分模块测试,txt写入测试#-*...

    1.自己写入txt

    直接上核心代码:with open("douban.txt","w") as f:

    f.write("这是个测试!")1212

    这句话自带文件关闭功能,所以和那些先open再write再close的方式来说,更加pythontic!

    结果就是这样:

    2.将文件输入(print)的内容写入txt#分模块测试,txt写入测试# -*- coding: utf-8 -*-from selenium import webdriverimport selenium.webdriver.support.ui as uiimport time#driver_item=webdriver.Firefox()driver_item=webdriver.PhantomJS(executable_path="phantomjs.exe")

    url="https://movie.douban.com/subject/3541415/?tag=%E7%A7%91%E5%B9%BB&from=gaia_video"wait = ui.WebDriverWait(driver_item,10)

    driver_item.get(url)try:

        driver_item.find_element_by_xpath("//img[@class='bn-arrow']").click()    #wait.until(lambda driver: driver.find_element_by_xpath("//div[@class='review-bd']/div[2]/div/div"))

    time.sleep(1)

    comments_deep = driver_item.find_element_by_xpath("//div[@class='review-bd']/div[2]/div")    print u"深度长评:"+comments_deep.text    #print type(comments_deep.text)#

    comments_wr=comments_deep.text.encode('utf-8')    #print type(comments_wr)#

    #title="盗梦空间"#中文命名文件名乱码,内容可用    title="Inception"

    with open("%s.txt"%title,"w") as f:#格式化字符串还能这么用!

    for i in comments_wr:

    f.write(i)except:    print 'can not caught the comments!'123456789101112131415161718192021222324252627282930123456789101112131415161718192021222324252627282930

    比较常用MODE

    不清空连续写入

    没有文件时候会自动创建的,但是!如果我重新对此进行写入,那么会先清空,然后再写,就是说以前写的没了,这样搞不好吧,我可是要记录很多东西的啊,万能的a出现了。。。

    把核心代码改成这样就可以了,记得把w改成a,至于那个分割线问题,因为后续写入和前面已经有的会混在一块,所以我做分割用:with open("%s.txt"%title,"a") as f:#格式化字符串还能这么用!

    f.write(" -------------------------------------我是分割线----------------------------------------- ")        for i in comments_wr:

    f.write(i)12341234

    效果是这样的,不够好看自己再加细节,比如换行多几次

    That’s all

    展开全文
  • Python创建模块并导入

    千次阅读 2017-08-30 09:24:04
    Python创建自己的模块很方便,所有的.py文件都被视为是一个模块 我们可以用import 文件名的方式把它导入自己的新文件 不过我们要注意创建的模块要符合命名规范,比如首字母不能是数字等 如果首字母是数字就会出现...

    Python创建自己的模块很方便,所有的.py文件都被视为是一个模块

    我们可以用import 文件名的方式把它导入自己的新文件

    不过我们要注意创建的模块要符合命名规范,比如首字母不能是数字等

    如果首字母是数字就会出现语法错误

    引用的时候不用加扩展名.py

    下面我们通过实例来演示一下


    首先创建一个文件a.py,里面有一个类A

    #coding:gbk
    
    #创建一个包含方法say_a_word的类A
    class A(object):
    
        def say_a_word(self):
            print "你好"


    然后在创建一个b.py文件,里面引用模块a创建一个对象


    #coding:gbk
    
    #引入包a
    import a
    
    #用包a中的A类创建一个对象b
    b = a.A()
    
    #引用方法say_a_word
    b.say_a_word()


    运行b.py文件就会输出“你好”

    b.py文件运行效果截图


    展开全文
  • 1.自己写入txt直接上核心代码:with open("douban.txt","w") as f:f.write("这是个测试!")1212这句话自带文件关闭...将文件输入(print)的内容写入txt#分模块测试,txt写入测试# -*...
  • 问题你需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉。解决方案tempfile 模块中有很多的函数可以完成这任务。 为了创建一个匿名的临时文件,可以使用 tempfile.TemporaryFile:...
  • python os模块 读写、创建 文件

    万次阅读 多人点赞 2019-02-20 14:59:31
    python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来...
  • python创建打包文件

    2019-06-13 18:33:34
    1.python打包setuptools实例详述(一篇文章学会打包)(tcy) 2.python路径/模块搜索路径/当前目录/site模块详解(tcy)https://mp.csdn.net/postedit/92018710 3.python setuptools参数...创建打包文件http...
  • Python编程中,我们常常需要自己编写模块,当模块文件写好了,就需要创建安装文件,方便模块的发布。 此时,常用的方法,就是使用Python distutils(代表distribution utilities,分发实用程序)包,来创建基于...
  • python os模块 文件操作

    2019-09-24 08:10:23
    Python读写文件实际操作的五大步骤: 1.打开文件 f = open("./test.txt", "w") 说明: 第一个参数是文件名称,包括路径;第二个参数是打开的模式mode'r':只读(缺省。如果文件不存在,则抛出错误)'w':只...
  • Python os模块文件操作(一)

    千次阅读 2019-08-11 18:14:03
    Python os模块文件操作(一) 一、文件描述符 在使用代码对文件进行操作时,为了指定操作的文件,避免不了要使用文件描述符,所以我们先介绍什么是文件描述符。 操作系统为了高效管理已经被打开的文件,会给每个...
  • 文件为小编原创的使用Python创建功能模块源文件1,主要内容为定义函数来实现截取字符串的功能,有需求的小伙伴可以自行下载
  • 简单的python创建读写文件脚本,给os模块中的linesep起了给别名ls,这样做的好处一方面简化了长长的变量名,另一方面也是主要原因用于提高代码性能,因为访问这个变量时首先要检测os模块,然后再解析linesep,...
  • python创建txt文件

    万次阅读 2017-09-23 16:33:14
    1.自己写入txt直接上核心代码:withopen("douban.txt","w")asf: f.write("这是个测试!")1212这句话自带文件关闭功能,所以和那些先open再...将文件输入(print)的内容写入txt#分模块测试,txt写入测试#-*-coding:...
  • 你需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉。 解决方案 tempfile 模块中有很多的函数可以完成这任务。 为了创建一个匿名的临时文件,可以使用 tempfile.TemporaryFile : from ...
  • python批量创建文件与批量创建文件夹

    万次阅读 多人点赞 2019-06-28 13:07:29
    python批量创建文件与修改文件名称 利用os模块可以快速帮助我们1.批量创建文件2.批量修改文件名称
  • os模块功能: 包含了普遍的操作系统的功能 1.1 获取操作系统类型: 1.2 打印操作系统详细信息: 1.3 获取当前文件所在的目录 print(os.getcwd()) 1.4 获取指定路径下所有的文件 1.5 创建文件夹 ...
  • #OS模块 文件/目录方法 import os #'.'表示当前目录;'..'上级目录 os.chdir(r"f:\AAA")#自定义工作目录 print(os.getcwd())#取当前工作目录 print(os.listdir(r"f:\AAA"))#返回指定路径下的所有文件和文件夹 ...
  • Python创建功能模块

    2020-05-11 18:15:59
    简单来说,当程序的功能很多、代码量很大时,我们可以编写一个实现一定功能的python文件,将功能独立封装成一个模块(即.py文件),这样我们在编写程序时就会省去很多重复的工作和代码的编写,提高程序编写的效率!...
  • python 创建使用模块

    2017-11-10 16:07:22
    创建和使用模块的步骤在客户端导入模块 在客户端限定函数调用到模块模块中编写测试客户端 在模块中消除全局代码 使得模块可以被客户端访问模块化编程:通过定义多个文件,每个文件包含多个函数的独立模块 ...
  • os.mknod("text.txt"):创建文件 os.system():运行shell命令 os.exit():终止当前进程 os.getcwd() 取得当前工作目录 os.getenv()和os.putenv:分别用来读取和设置环境变量 os.chdir('dirname') 改变目录 os.mkdir/...
  • (只是传递,基础知识也是根基)Python读取数据,并存入Excel打开的CSV格式文件内!这里需要用到bs4,csv,codecs,os模块。废话不多说,直接写代码!该重要的内容都已经注释了,剩下不懂的可以自己查询一下,或者QQ...
  • XlsxWriter:用于创建Excel XLSX文件Python模块
  • Python 经常和文件打交道,所以 OS模块的使用率还是挺高的。那么下面说一下 OS模块文件的操作。 在 os操作文件中 '/' 符号当作目录来区分,so 增删改查等操作,直接用这样的方式来拼接 创建目录(文件夹) ...
  • ----需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉。 tempfile 模块中有很多的函数可以完成这任务。为了创建一个匿名的临时文件,可以使用tempfile.TemporaryFile from tempfile ...
  • 利用python glob模块来查找文件,最后以列表的形式返回查找到的每个文件的路径、文件名、创建时间以及文件的大小。 # !/usr/bin/env python # coding: utf-8import os import globclass FindFile(): def __init__...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,647
精华内容 2,658
关键字:

python创建模块文件

python 订阅