Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用cygwin从posix切换到windows_Python_Cygwin - Fatal编程技术网

Python 如何使用cygwin从posix切换到windows

Python 如何使用cygwin从posix切换到windows,python,cygwin,Python,Cygwin,我正在编写一个用cygwin执行的python脚本。它所做的一件事就是调用pg_dump并向其传递一个文件名。我的问题是,python/cygwin正在向它传递一个posix路径,而windows版本的pg_dump不知道如何处理它。我可以调用一些东西将posix路径转换为windows路径吗 我要转换此路径 /cygdrive/c/Users/me/Code/myproj/pyBuildScript/src/snapshooter/working/sso.sql 到 您可以阅读手册页了解更多

我正在编写一个用cygwin执行的python脚本。它所做的一件事就是调用pg_dump并向其传递一个文件名。我的问题是,python/cygwin正在向它传递一个posix路径,而windows版本的pg_dump不知道如何处理它。我可以调用一些东西将posix路径转换为windows路径吗

我要转换此路径

/cygdrive/c/Users/me/Code/myproj/pyBuildScript/src/snapshooter/working/sso.sql

您可以阅读手册页了解更多开关。其中

  • -w代表窗户
  • -u for unix
  • -绝对路径

您需要小心转义,确保path参数是单个shell单词。

您可以执行以下操作:

>>> posix_str = "/cygdrive/c/Users/me/Code/myproj/pyBuildScript/src/snapshooter/working/sso.sql"
>>> nt_str = "C:" + posix_str[11:]
>>> nt_str = nt_str.replace("/", "\\")
>>> print nt_str
C:\Users\me\Code\myproj\pyBuildScript\src\snapshooter\working\sso.sql

所以,我在脚本之前运行cygpath?是的,比如:
your\u program\u here.py“$(cygpath-w“$P”)”
cygpath -w
>>> posix_str = "/cygdrive/c/Users/me/Code/myproj/pyBuildScript/src/snapshooter/working/sso.sql"
>>> nt_str = "C:" + posix_str[11:]
>>> nt_str = nt_str.replace("/", "\\")
>>> print nt_str
C:\Users\me\Code\myproj\pyBuildScript\src\snapshooter\working\sso.sql