zoukankan      html  css  js  c++  java
  • Python学习笔记7——文本、模块

    参考书籍:《Learning_Python_5th_Edition.pdf》,一本英文书呢,我上传到百度网盘吧,请点击这里密码是:kym3

    文本文件的输入输出

    Python具有基本的文本文件读写功能。Python的标准库提供有更丰富的读写功能。

    文本文件的读写主要通过open()所构建的文件对象来实现。

      · 创建文件对象

    打开一个文件,并使用一个对象来表示该文件:

    f = open(文件名,模式)

    最常用的模式有:

    "r"     # 只读

    “w”     # 写入

    >>>f = open("test.txt","r")

      · 文件对象的方法

    读取:

    content = f.read(N)          # 读取N bytes的数据

    content = f.readline()       # 读取一行

    content = f.readlines()      # 读取所有行,储存在列表中,每个元素是一行。

    写入:

    f.write('I like apple')      # 将'I like apple'写入文件

    关闭文件:

    f.close()

    模块

    之前看到的函数和对象,从本质上来说,它们都是为了更好的组织已经有的程序,以方便重复利用。

    模块(module)也是为了同样的目的。在Python中,一个.py文件就构成一个模块。通过模块,可以调用其它文件中的程序。

      · 引入模块

    先写一个first.py文件,内容如下:

    def laugh():
        print('HaHaHaHa')

    再写一个second.py,并引入first中的程序:

    import first
    
    for i in range(10):
        first.laugh()

    在second.py中,就使用了first.py中定义的laugh()函数。

    引入模块后,可以通过模块.对象的方式来调用引入模块中的某个对象。上面例子中,first为引入的模块,laugh()是我们所引入的对象。

    Python中还有其它的引入方式,

    import a as b             # 引入模块a,并将模块a重命名为b

    from a import function1   # 从模块a中引入function1对象。调用a中对象时,我们不用再说明模块,即直接使用function1,而不是a.function1

    from a import *           # 从模块a中引入所有对象。调用a中对象时,我们不用再说明模块,即直接使用对象,而不是a.对象

    这些引用方式,可以方便后面的程序书写。

      · 搜索路径

    Python会在以下路径中搜索它想要寻找的模块:

        · 程序所在的文件夹

        · 标准库的安装路径

        · 操作系统环境变量PYTHONPATH所包含的路径

    如果有自定义的模块,或者下载的模块,可以根据情况放在相应的路径,以便Python可以找到。

       · 模块包

    可以将功能相似的模块放在同一个文件夹(比如说this_dir)中,构成一个模块包。通过

    import this_dir.module

    引入this_dir文件夹中的module模块。

    该文件夹中必须包含一个__init__.py的文件,提醒Python,该文件夹为一个模块包。__init__.py可以是一个空文件。

    运行f.py的几种方法

    interactive prompt, icon clicks, IDLE menu options, system command lines, import and reload, using execevalcompile, ...

    总结

    f = open(name, "r")

    line = f.readline()

    f.write('abc')

    f.close()

    import module

    module.object

    __init__.py

     

  • 相关阅读:
    东芝开发板驱动OLED模块显示LOGO图片
    东芝MCU实现位带操作
    使用系统定时器SysTick实现精确延时微秒和毫秒函数
    VC++调试错误的解决方案
    #pragma once与 #ifndef的区别
    strcmp()字符串比较函数用法
    C、C++中的static和extern关键字
    error LNK1169 找到一个或多个多重定义的符号的解决方法
    vs2013编译obs源码
    Qt线程—QThread的使用--run和movetoThread的用法
  • 原文地址:https://www.cnblogs.com/xv-shilin/p/9615068.html
Copyright © 2011-2022 走看看