如何从python 2.7中的其他目录导入文件

时间:2016-01-19 20:12:57

标签: python-2.7

我一直在通过创建一些程序来试验python。事情是,我不知道如何导入默认python目录中的东西。

2 个答案:

答案 0 :(得分:0)

如果您只需要读入文件而不导入模块,那么文档就会广泛介绍。

https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files

特别是对于Windows文件系统,您需要执行以下操作之一:

1。)使用forwardslashes与反斜杠。这适用于大多数操作系统。

f = open("c:/somedir/somefile.txt", "r")

2。)使用原始字符串。

f = open(r"c:\somedir\somefile.txt", "r")

3。)逃避反斜杠。

f = open("c:\\somedir\\somefile.txt", "r")

如果您需要从程序目录之外导入要在程序中使用的模块,可以使用以下信息。

Python查看sys.path以查看该模块是否存在,如果是,则导入。如果文件/模块所在的路径不在sys.path中,Python将引发ImportError。您可以使用sys模块以编程方式更新路径。

import sys
dir = "path to mymodule"
if dir not in sys.path:
    sys.path.append(dir)
import mymodule

您可以使用以下方法检查当前的sys.path:

print(sys.path)

示例:

>>> print(sys.path)
['', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python34.zip',    '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages']
>>> sys.path.append("/Users/ddrummond/pymodules")
>>> print(sys.path)
['', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python34.zip', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages', '/Users/ddrummond/pymodules']
>>> 

你可以看到sys.path现在包含'/ Users / ddrummond / pymodules'。

答案 1 :(得分:0)

行 所以我做了一些繁重的研究,结论是 如果你想访问保存在不同位置的文件 使用 f = open('E:/somedir/somefile.txt','r')

r = f.read()

注意:不要使用'\'我出错了。我们的系统地址使用'\'所以要小心