0

我已经制作了一些 python 脚本,但是有没有更简单的方法来运行它们?我正在使用cygwin。

python "C:\Users\Desk\Dropbox\scripts\wsort.py" > data11414_unsorted.txt < data11414_sorted.txt

我想要这样的东西(不输入路径名或“python”):

wsort > data11414_unsorted.txt < data11414_sorted.txt

wsort我真正的 wsort.py 的链接在哪里

4

3 回答 3

1

在脚本中添加 Shebang

#!/bin/python

然后像这样调用

wsort.py > data11414_unsorted.txt < data11414_sorted.txt
于 2013-04-15T01:03:11.713 回答
1

首先,您的问题具有 Windows 样式的路径(反斜杠,以 开头C:)而不是 Cygwin 路径 ( /cygdrive/c/Users/Desk/Dropbox/scripts/wsort.py)。这意味着你实际上并没有使用 Cygwin,或者如果你是,你忽略了一堆警告。

下面假设您使用的是 Cygwin Bash(如果您从“开始”菜单启动 Cygwin 终端,您应该会得到它)和 Cygwin Python(您使用 Cygwin 的setup.exe 安装,而不是 Windows Python 安装程序)。如果你不是,你会让自己的生活比你需要的更困难。

顺便说一句,您需要采取一系列步骤:

  • 首先,使脚本可执行。在 Cygwin Bash shell 中使用以下chmod命令:

    chmod +x /cygdrive/c/Users/Desk/Dropbox/scripts/wsort.py
    
  • 其次,告诉系统如何执行它。将以下行添加到脚本的顶部:

    #!/bin/python
    

    (这是一个“shebang”。Python 将其视为注释,因此不会对其执行任何操作,但 Cygwin 和其他类似 Linux 的系统将使用该行来查看运行脚本的程序。在这种情况下,Python .)

  • 第三,确保你的行尾是正确的。Cygwin 期望 Linux 行结束并且没有它们会失败。这可能不是问题,但这样做没有害处。运行以下命令:

    dos2unix /cygdrive/c/Users/Desk/Dropbox/scripts/wsort.py
    

    此时,您将能够通过在 Cygwin 中指定脚本的完整路径来调用该脚本。如果不明确指定脚本的位置,您将无法运行它。

  • 第四步是确保脚本“在您的路径中”,即在 Cygwin 查找要运行的脚本的文件夹之一中。有很多方法可以做到这一点,但最明智的可能是将您的脚本目录添加到您的路径中。每当您启动新的 Cygwin 会话时,以下命令会将您的脚本目录添加到您的路径中:

    echo 'PATH="/cygdrive/c/Users/Desk/Dropbox/scripts:$PATH"' >>~/.bashrc
    

    但是,您需要重新启动 Cygwin 终端才能使其生效。

    那时,您只需键入即可在 Cygwin 中运行脚本wsort.py(并因此将其与重定向等一起使用,如您的问题中所示)。

  • 最后,为了能够简单地将其称为wsort,有多种选择。显而易见的只是重命名文件。更有用的是(并且不复制文件或做任何可能破坏 Dropbox 同步的事情),尝试创建一个别名:

    echo 'alias wsort=wsort.py'  >>~/.bashrc
    

    同样,您需要重新启动 Cygwin 终端才能使其生效。

于 2013-04-15T21:15:43.780 回答
0

也许使用别名?

alias wsort = "Command_Used" 
于 2013-04-15T17:06:36.207 回答