我有很多的目录以文本文件的编写使用(g)vim,我已经写了一些实用工具,我找到有用素。我开始的事业一磅-砰-/usr/bin/env python线,以便使用蟒蛇,是安装在cygwin。我想类型的命令这样的:

%cd~/SomeBook

%,这pythonUtil

/usr/local/bin/pythonUtil

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

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

pythonUtil:发现infile.txt;写作outfile.txt;完成(或一些这样的,如果有的话)

然而,我pythonUtil程序一直告诉我他们找不到infile.txt.如果我复制的实用到当前工作的目录,一切都很好,但后来我有副本的我的事业垃圾的景观。我应该怎么做?

又一个编辑:来总结一下-什么我想要的是操作系统。路径。abspath("filename").返回的绝对路径作为一串,然后所有的模糊性已被删除。

但是:如果蟒蛇正在使用的一个安装在cygwin,那么绝对路径将是一个CYGWIN-相对路径,如/home/someUser/someDir/someFile.txt.然而,如果蟒蛇已经安装在窗户(和在这里被称为从cygwin终端的命令行),然后在绝对路径将是完整的窗户的路径,从'驱动'上下来,象D:\cygwin\home\someUser\someDir\someFile.txt.

道德:不要指望cygwin Python产生一个完整的绝对路径的文件没有根/;它是超越了它的事件。但是,你可以接触到的任何文件上WinXP系统与cygwin-蟒蛇如果指定的文件的路径,使用"/cygdrive/driveLetter"队公约》。

注:不要用'\'s分离器在WinXP路上cygwin命令行;使用'/'s和信任的蛇。不知道为什么,但一些分离器的可能下降和路径可以修改,以包括额外的水平,如"文件和设置\someUser"和其他Windows无稽之谈。

感谢响应为推搡我在正确的方向。

有帮助吗?

解决方案

看看操作系统。getcwd:

编辑:相对路径,请看一看在操作系统。路径模块:

尤其是,操作系统。路径。加入和操作系统。路径。normpath.例如:

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

其他提示

当你输入“LS”,会发生什么?你看到 “infile.txt” 上市呢?

os.chdir(my_dir)

os.chdir(os.getcwd())
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top