Python中的文件管理
我对Python有些陌生,已经编写了几个脚本,但没有太多严肃的程序。我试图理解我写的函数/脚本(以及我将来创建的任何模块)应该放在哪里,以便其他程序可以访问它们。我在这个主题(和)上找到了两个不同的Python帮助页面,它们最终似乎表明文件需要位于包含Python可执行文件的文件夹(或者可能是某个子文件夹,我不太懂术语)或当前目录中。据我所知,默认的当前目录是用环境变量设置的。但是,在设置PYTHONPATH后,如下面的屏幕截图所示 我打开了一个新的pythonshell,查看当前目录是什么。下面是产生的输出Python中的文件管理,python,windows,file-management,Python,Windows,File Management,我对Python有些陌生,已经编写了几个脚本,但没有太多严肃的程序。我试图理解我写的函数/脚本(以及我将来创建的任何模块)应该放在哪里,以便其他程序可以访问它们。我在这个主题(和)上找到了两个不同的Python帮助页面,它们最终似乎表明文件需要位于包含Python可执行文件的文件夹(或者可能是某个子文件夹,我不太懂术语)或当前目录中。据我所知,默认的当前目录是用环境变量设置的。但是,在设置PYTHONPATH后,如下面的屏幕截图所示 我打开了一个新的pythonshell,查看当前目录是什么。
>>> import os
>>> os.getcwd()
'C:\\Program Files\\Python33'
>>>
有人能解释一下我做错了什么,以及我如何做(如果可能的话),这样我就可以访问我写的任何给定脚本,我已经将这些脚本放在某个特定的文件夹中,我选择将其指定为我的主工作目录(或该目录的某个子文件夹)?我不想在C:/ProgramFiles/Python33
目录下工作
如果需要更多信息,我很乐意提供。告诉我一声。我想你把这两个人搞混了
PYTHONPATH
是模块文件的默认搜索路径。你可以阅读。它不定义您的工作目录
和os.getcwd
返回表示当前工作目录的字符串。它是您打开shell的目录。例如,如果我在/home/hugh
中打开shell,它将返回/home/hugh/
。如果要更改当前工作目录,可以使用os.chdir
如果要访问已编写的模块,可以将它们放在当前工作目录或
PYTHONPATH
中。如果它们在PYTHONPATH
中,则与您的工作目录无关。您可以阅读有关的更多信息。您似乎已经打开了python的交互模式。我不是100%确定,但我敢打赌Windows和*NIXes上的cwd
默认设置为调用解释器的目录
所以问题是,您是如何打开python shell的?可能来自C:\Program Files\Python33
,或者使用某个IDE,该IDE以cwd
作为python二进制文件所在的实际目录开始
您几乎可以随时放置文件,并从那里开始工作。但是,您必须相应地调整cwd
。无论如何。通常IDE提供一些项目选项来手动设置cwd
。您可以从某个基本目录运行脚本。例如
cd D:
cd D:\my_python_dir\
python test.py
应该有用。另外,如果不将test.py
作为第二个参数,则应启动交互式shell,并且os.getcwd()
应给出D:/my\u python\u dir
或等效结果
最后,如果您使用的是交互式shell,您可以始终使用其他
os
函数os.chdir(path)
您没有做错什么。当前工作目录C:/Program Files/Python33
和您的setPYTHONPATH=D:/Google Drive/Python
是两个不同的东西
使用当前配置,您可以轻松地将模块(*.py
文件)和包(包含\uuuu init\uuuuuuuupy
文件的文件夹)放入D:/Google Drive/Python
中,然后从任何脚本导入它们,无论从何处运行
例如,假设您将模块mytest.py
放在D:/googledrive/Python
中。现在您可以创建脚本D:/workspace/test.py
(无论在何处创建)
使用
python test.py
从D:/workspace/
运行它将打印D:/Google Drive/python/mytest.py
或D:\\Google Drive\\python\\mytest.py
(手头没有窗口:().PYTHONPATH
是Python解释器查找当前目录中找不到的模块的地方。要启动shell,您可以将启动脚本的路径放在名为PYTHONSTARTUP
的环境变量中,启动Python shell时将执行该命令。您应该能够使该脚本提示您或者,您可以执行一些单独的步骤,设置每次启动shell时要更改的目录,该shell保存在某个位置,然后由自定义启动脚本使用。仅供参考:cd
不会对C-dr以外的驱动器进行更改要完成这一点,只需输入D:
。一旦进入该驱动器,cd
将按预期工作。一旦进入Python的交互模式,我将如何执行我的脚本之一?使用您的示例,我将如何从Python的交互模式中执行test.py
?
import mytest
print(mytest.__file__)