gpt4 book ai didi

python - 如何让 Python 脚本 (cygwin) 在当前(或相关)目录中工作?

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:46 27 4
gpt4 key购买 nike

我有很多包含使用 (g)vim 编写的文本文件的目录,并且我编写了一些我认为在 Python 中有用的实用程序。我使用 pound-bang-/usr/bin/env python 行开始实用程序,以便使用安装在 cygwin 下的 Python。我想输入这样的命令:

%cd ~/SomeBook

%which pythonUtil

/usr/local/bin/pythonUtil

%pythonUtil ./infile.txt ./outfile.txt

(或 % pythonUtil someRelPath/infile.txt somePossiblyDifferentRelPath/outfile.txt)

pythonUtil:在file.txt中找到;写入 outfile.txt;完成(或一些类似的,如果有的话)

但是,我的 pythonUtil 程序一直告诉我它们找不到 infile.txt。如果我将实用程序复制到当前工作目录中,一切都很好,但是我的实用程序副本随处可见。我应该做什么?

又一个编辑:总而言之——我想要的是 os.path.abspath('filename')。这将以字符串形式返回绝对路径名,然后消除了所有歧义。

但是:如果使用的 Python 是安装在 cygwin 下的,那么绝对路径名将是 CYGWIN 相对路径名,例如/home/someUser/someDir/someFile.txt。但是,如果 Python 已安装在 Windows 下(并且在此处从 cygwin 终端命令行调用),那么绝对路径名将是完整的 Windows 路径,从“驱动器”开始向下,例如 D:\cygwin\home\someUser\someDir\someFile.txt.

寓意:不要期望 cygwin Python 为不以/为根目录的文件生成 Windows 完整的绝对路径名;它超出了它的事件范围。但是,如果您使用“/cygdrive/driveLetter”引入约定指定文件路径,则可以使用 cygwin-python 访问 WinXP 系统上的任何文件。

注意:不要在cygwin命令行的WinXP路径中使用'\'作为分隔符;使用'/'并相信蛇。不知道为什么,但可能会删除一些分隔符,并且可能会修改路径以包含额外的级别,例如“Documents and Settings\someUser”和其他 Windows 废话。

感谢响应者将我推向正确的方向。

最佳答案

查看 os.getcwd:

编辑:对于相对路径,请查看 os.path 模块:

特别是 os.path.join 和 os.path.normpath。例如:

import os
print os.path.normpath(os.path.join(os.getcwd(), '../AnotherBook/Chap2.txt'))

关于python - 如何让 Python 脚本 (cygwin) 在当前(或相关)目录中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1117414/

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