【问题标题】:Run python script from enthought canopy with an absolute path as an argument使用绝对路径作为参数从 enthought canopy 运行 python 脚本
【发布时间】:2014-11-26 14:39:13
【问题描述】:

我想在 mac 或 windows 中从 enthought canopy v1.5.0.2717 运行 python 脚本,并使用运行配置对话框提供绝对文件路径作为参数。

在运行配置中我放了一个参数(例如):

'/Users/dir/Data/University stuff/CQT/Data/ScriptRunFolder/testingPythonRfRamp.xml' 

我的脚本包含以下代码:

import sys
print sys.argv[1]

然后我点击“运行”,打印出来的字符串是:

'/Users/dir/Data/University'

另一个例子是使用路径:

'C:\User\Program files\test.txt'

它会打印出来

'C:UserProgram'

看起来它在空格处分割路径,并删除“\”。

从命令行运行脚本,如:

$python myScript.py '/Users/dir/Data/University stuff/CQT/Data/ScriptRunFolder/testingPythonRfRamp.xml'

得到正确的打印字符串:

'/Users/dir/Data/University stuff/CQT/Data/ScriptRunFolder/testingPythonRfRamp.xml'

如何使用 Canopy 获得相同的结果?

【问题讨论】:

  • 使用 os.path.sep 来识别正在运行的操作系统中的当前文件分隔符
  • 你尝试了什么,你看到了什么错误信息,你为什么不发布一些代码?
  • @ShawnZhang 我更多地考虑空间。我知道并且我假设用户知道要使用什么文件分隔符。加上“\”是python字符串中的一个特殊字符,我应该在路径中输入它作为“\\”吗?以及如何表示路径中的空格?
  • 您能否编辑您的帖子以包含您正在运行的命令以及您的代码?
  • 当你说你“通过了一个论点”时,你的意思是你跑了python myScript.py '/Users/dir/Data/University stuff/CQT/Data/ScriptRunFolder/testingPythonRfRamp.xml'?另外,您能否粘贴涉及系统参数的相关代码部分(可能是实际行周围 +/- 5 行以提供上下文)?

标签: python command-line-arguments enthought canopy


【解决方案1】:

shell 会将双引号内的所有内容组合成一个参数,而不是单引号。

>type showme.py
import sys
print(sys.argv[1:])


>python showme.py 'i am sad'
["'i", 'am', "sad'"]
>python showme.py "i am happy"
['i am happy']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    相关资源
    最近更新 更多