Python中的文件管理

Python中的文件管理,python,windows,file-management,Python,Windows,File Management,我对Python有些陌生,已经编写了几个脚本,但没有太多严肃的程序。我试图理解我写的函数/脚本(以及我将来创建的任何模块)应该放在哪里,以便其他程序可以访问它们。我在这个主题(和)上找到了两个不同的Python帮助页面,它们最终似乎表明文件需要位于包含Python可执行文件的文件夹(或者可能是某个子文件夹,我不太懂术语)或当前目录中。据我所知,默认的当前目录是用环境变量设置的。但是,在设置PYTHONPATH后,如下面的屏幕截图所示 我打开了一个新的pythonshell,查看当前目录是什么。

我对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
和您的set
PYTHONPATH=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__)