浅谈Python2、Python3相对路径、绝对路径导入方法

yizhihongxing

下面是针对“浅谈Python2、Python3相对路径、绝对路径导入方法”的完整攻略。

1. Python 2和Python 3的文件路径表示方式

在Python 2中,文件路径表示方式使用的是相对路径和绝对路径。而在Python 3中,新增了一种方式,即使用包(package)的相对路径。下面我们分别来看Python 2和Python 3文件路径表示方式的具体使用方法。

1.1 在Python 2中的文件路径

在Python 2中,文件路径表示方式使用的是相对路径和绝对路径。

1.1.1 相对路径

相对路径表示的是当前脚本所在的路径为起点,向下查找相对路径所表示的目标路径。

例如,当前我们有一个文件夹myproject,其中包含一个Python文件test.py,还有一个文件夹mylib,下面我们演示一下在test.py中如何使用相对路径导入mylib文件夹下的mymodule.py模块。

myproject/test.py:

from mylib import mymodule

myproject/mylib/mymodule.py:

def my_function():
    print("hello world!")

test.py中,我们使用了from mylib import mymodule语句导入了mymodule.py模块。这里的mylib表示当前脚本所在的路径下的mylib文件夹。

1.1.2 绝对路径

绝对路径表示的是从根目录开始的完整路径,可以直接指定文件所在的目录。

例如,在Linux系统下,我们的代码文件很可能位于/home/myname/myproject/文件夹中。此时我们可以直接使用/home/myname/myproject/mylib/mymodule.py作为导入语句。

1.2 在Python 3中的文件路径

在Python 3中,新增了一种我们称之为“包路径”的相对路径表示方式。我们可以使用包路径来导入相同或不同包内的模块。

1.2.1 包路径

使用包路径的方式是在__init__.py文件中定义属性__path__,然后通过点号'.'来表示包路径。

例如,在myproject文件夹下的mylib文件夹中,有一个名为mymodule.py的Python文件。如果我们希望从test.py文件中导入mylib文件夹中的mymodule.py模块,可以使用import mylib.mymodule语句导入。

下面是演示代码:

myproject/mylib/__init__.py:

__path__ = ['mylib']

myproject/test.py:

from mylib.mymodule import my_function

myproject/mylib/mymodule.py:

def my_function():
    print("hello world!")

myproject/mylib/__init__.py文件中,我们定义了属性__path__,并将其设置为['mylib'],表示这个包的文件在当前目录下。

test.py中,我们使用了from mylib.mymodule import my_function语句导入了mymodule.py模块。

2. 示例说明

接下来,我们通过两个示例来说明Python 2和Python 3中如何使用相对路径和绝对路径导入模块。

2.1 Python 2中的路径导入示例

我们在一个名为test的父文件夹中放置了两个文件夹ab,以及一个文件test.py。其中,a文件夹下放置了一个名为module_a.py的文件,b文件夹下放置了一个名为module_b.py的文件。

test/a/module_a.py:

def fu_a():
    print("Hello, I am module a!\n")

test/b/module_b.py:

def fu_b():
    print("Hello, I am module b!\n")

test/test.py:

from a.module_a import *
from b.module_b import *

fu_a()
fu_b()

test.py文件中,我们先使用了相对路径导入了模块a.module_a和模块b.module_b,然后分别调用了这两个模块中的函数。这里需要注意的是,在Python 2中,我们需要使用from module_a import *这样的语法来导入模块,而不能使用像Python 3那样使用点号导入模块。

2.2 Python 3中的路径导入示例

我们在一个名为project的父文件夹中放置了两个文件夹lib_alib_b,以及一个文件main.py。其中,lib_a文件夹下放置了一个名为module_a.py的文件,lib_b文件夹下放置了一个名为module_b.py的文件。

project/lib_a/module_a.py:

def fu_a():
    print("Hello, I am module a!\n")

project/lib_b/module_b.py:

def fu_b():
    print("Hello, I am module b!\n")

project/main.py:

from lib_a.module_a import *
from lib_b.module_b import *

fu_a()
fu_b()

main.py文件中,我们依然使用了相对路径导入模块lib_a.module_a和模块lib_b.module_b,然后分别调用了这两个模块中的函数。这里需要注意的是,在Python 3中我们使用点号.来导入模块。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈Python2、Python3相对路径、绝对路径导入方法 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • PyautoGui常用教程(一篇掌握)

    PyAutoGUI常用教程 介绍 PyAutoGUI是一个用于自动化鼠标和键盘的Python库。通过PyAutoGUI,您可以编写脚本来自动点击鼠标和键盘,进行图像识别等操作,从而实现自动化任务。在本篇教程中,我们将介绍PyAutoGUI的常用方法。 安装 您可以通过以下命令安装PyAutoGUI: pip install pyautogui 常用方法 鼠标…

    python 2023年5月13日
    00
  • 完美解决在oj中Python的循环输入问题

    下面我将为您介绍“完美解决在oj中Python的循环输入问题”的攻略。 问题描述 在OJ(Online Judge)平台上,提交题目解答时,往往需要多组输入,而Python是解析输入的语言之一。Python使用input()函数读取输入,但是input()函数只能读取一行输入。在读取多行输入的问题上,Python就显得比其他语言(如C++)繁琐,浪费时间和体…

    python 2023年6月3日
    00
  • Python爬虫之BeautifulSoup的基本使用教程

    Python爬虫之BeautifulSoup的基本使用教程 在Python爬虫中,BeautifulSoup是一个非常流行的HTML解析库,可以帮助我们方便地从HTML文档中提取数据。本文将介绍如何使用BeautifulSoup进行HTML解析,并提供两个示例。 步骤1:安装BeautifulSoup 在使用BeautifulSoup之前,需要先安装它。可以…

    python 2023年5月15日
    00
  • python请求域名requests.(url = 地址)报错

    以下是解决Python请求域名requests.(url=地址)报错的完整攻略: 问题描述 在使用Python的requests模块请求域名时,有时会出现各种各样的错误,例如请求超时、请求被拒绝等。这些错误会导致程序无法正常运行。但是,有一些常见的错误可以通过一些简单的方法解决。 解决方法 可以使用以下步骤解决Python请求域名requests.(url=…

    python 2023年5月13日
    00
  • Python openpyxl读取单元格字体颜色过程解析

    具体讲解如下: Python openpyxl读取单元格字体颜色过程解析 一、背景介绍 在处理Excel文件的过程中,有时候需要读取某个单元格的字体的颜色信息,本文将介绍如何使用Python中的openpyxl库来读取Excel文件中单元格的字体颜色。 二、实现过程 1. 安装及导入openpyxl库 要在Python中使用openpyxl库,需要先安装该库…

    python 2023年6月6日
    00
  • Cython 三分钟入门教程

    Cython 三分钟入门教程 什么是Cython Cython是一种基于Python语言的编译器,它可以将Python代码转换为C/C++代码,从而提高Python代码的执行效率。Cython可以使用Python的大部分语法,同时支持静态类型定义和C语言扩展,可以将Python代码转化为可以编译和执行的C语言代码。Cython通常与C的库或C++的库进行配合…

    python 2023年6月3日
    00
  • Python向excel中写入数据的方法

    可以使用Python中的openpyxl库来向Excel中写入数据。下面是具体的实例教程。 安装openpyxl 首先,需要通过pip安装openpyxl库。在命令行中输入以下命令进行安装: pip install openpyxl 创建excel文件并写入数据 示例一 在这个示例中,我们将创建一个简单的Excel文件并写入数据。首先,使用以下代码导入必要的…

    python 2023年5月13日
    00
  • Python读取csv文件分隔符设置方法

    当我们使用Python读取csv文件时,如果该文件的列与列之间的分隔符不是默认的逗号分隔符,那么就需要设置正确的分隔符来读取文件。 下面将为大家详细讲解Python读取csv文件分隔符设置方法的完整攻略,包含以下两个部分: 1.使用csv模块读取csv文件 2.使用pandas库读取csv文件 1.使用csv模块读取csv文件 在Python中,可以使用内置…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部