gpt4 book ai didi

python - 不使用 sys.path.append 或 sys.path.insert 从目录导入文件

转载 作者:太空宇宙 更新时间:2023-11-03 18:46:14 47 4
gpt4 key购买 nike

在Python中,如果我想从不同的目录导入文件,那么我应该这样做,

import sys
sys.path.append("/path")

现在,

我有两个文件要导入,

File1.py and File2.py,

这些是文件的位置,

MyFiles/File1.py
MyFiles/File2.py

现在,如果我想导入这两个文件,我会这样做

from MyFiles import File1
from MyFiles import File2

这应该不起作用,因为我没有使用 sys.path 定义这些文件的路径

但是当我运行代码时,文件已成功导入,而无需使用 sys.path 定义路径

这是代码

from __future__ import print_function

import sys
import os
import hashlib
import struct #Interpret strings as packed binary data
import getopt #for Runtime arguments

from MyFiles import File1
from MyFiles import File2

尽管我没有定义 sys.path ,这段代码仍然成功地从目录导入文件。

并且该路径在 sys.path 中尚不可用

['C:\\Users\\Sufiyan\\Desktop\\MyFolder', 'C:\\Windows\\SYSTEM32\\python33.zip', 'C:\
\Python33\\DLLs', 'C:\\Python33\\lib', 'C:\\Python33', 'C:\\Python33\\lib\\site-
packages']

很明显,路径,C:\\Users\\Sufiyan\\Desktop\\MyFolder\\MyFiles 不存在。

那么为什么这段代码可以工作?

最佳答案

该路径不存在,但父路径'C:\\Users\\Sufiyan\\Desktop\\MyFolder'存在。当你这样做时

from MyFiles import File1

它将尝试将模块的路径附加到现有路径中,因此它将采用上述路径,向其中添加“MyFiles”,并尝试从该模块(文件或__init__.py 在 MyFiles 目录中)。

您可以将模块路径视为与文件路径非常相似。如果它作为 sys.path 中任何内容下的子目录存在,那么它将去那里获取它。

关于python - 不使用 sys.path.append 或 sys.path.insert 从目录导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453834/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com