Python 将动态生成的字符串转换为原始文本

Python 将动态生成的字符串转换为原始文本,python,Python,我对python非常陌生,我发现了一个问题,我正在从字典中动态检索一个字符串,如下所示 '%s foo %s'%(str_val_1, str_val_2) files=“eputilities/epbalancement\u alb/referenced assemblies/model/cv6\u xmltypemodel\u xp2.cs” 我无法在此特定文件上执行任何操作,因为它正在将路径读取为两个不同的字符串 eputilities/epbalancement\u alb/refer

我对python非常陌生,我发现了一个问题,我正在从字典中动态检索一个字符串,如下所示

'%s foo %s'%(str_val_1, str_val_2)
files=“eputilities/epbalancement\u alb/referenced assemblies/model/cv6\u xmltypemodel\u xp2.cs”

我无法在此特定文件上执行任何操作,因为它正在将路径读取为两个不同的字符串

eputilities/epbalancement\u alb/referenced and assemblies/model/cv6\u xmltypemodel\u xp2.cs

因为引用的程序集和程序集之间有一个空格

我想知道如何将这个转换成RWYString(忽略空间,但仍然保持这两个空间之间的距离,并将其视为一个字符串)

我无法理解这一点,尽管网上有一些评论

请帮忙


谢谢

python中的标准字符串构建是这样工作的

'%s foo %s'%(str_val_1, str_val_2)
如果我理解的没错,要么有两个字符串的列表,要么有两个不同的字符串变量

对于前一种情况,请执行以下操作:

' '.join(list)
'%s %s'%(string_1, string_2)
对于后者,请执行以下操作:

' '.join(list)
'%s %s'%(string_1, string_2)

从对另一个答案的评论中,我了解到您希望执行一些外部工具并向其传递一个参数(文件名)。但是,此参数中有空格

我建议采取一些措施;当然,我会使用
子流程
,而不是
操作系统

import subprocess

# Option 1
subprocess.call([path_to_executable, parameter])

# Option 2
subprocess.call("%s \"%s\"" % (path_to_executable, parameter), shell=True)
对我来说,两者都有效,请检查它们是否也有效

说明:

选项1获取字符串列表,其中第一个字符串必须是可执行文件的路径,所有其他字符串都被解释为命令行参数。由于
subprocess.call知道这些实体中的每一个,因此它会正确地调用外部参数,以便理解
parameter`将被解释为一个带空格的字符串,而不是两个或多个参数


选择2是不同的。通过关键字参数
shell=True
我们告诉
subprocess.call
通过shell执行调用,即第一个位置参数“被解释为在shell中像这样键入”。但是现在,我们必须相应地准备这个字符串。那么,如果必须键入以空格作为参数的文件名,您会怎么做?你应该把它放在双引号之间。这就是我在这里要做的。

是否要将字符串传递给外部程序?Python对文件名中的空格没有问题。你能出示字典吗?@gnibbler:是的,我正在将这个字符串变量传递给一个外部程序,就像源代码管理器一样,它从中检出文件。@user2002985,好的。这就是你做错的部分。发布用于调用外部程序的代码,我们将告诉您如何修复它。ccm co是在源代码管理器dict_ir_任务[key1]中签出文件的命令=作为参数路径传递的动态检索变量\u ergoplan=动态检索路径,如“D:\PE5R23SP1\ergoplan-PE5R23SP1\ergoplan”files=是我遇到问题的动态检索文件路径,例如“/eputilities/epbalancement\u alb/referenced assemblies/model/cv6\u xmltypemodel\u xp2.cs”ret\u co=os.system(“ccm-co-task”+dict\u ir\u task[key1]+“+path\u ergoplan+”/“+files+”>>co.log”)我有一个字符串,例如D:\pat\reg prg\text。1当我读取此字符串时,我得到的字符串仅高达D:\pat\reg,而我想读取整个路径当您打印该变量时会发生什么情况?该变量打印得很好,正是我想要的完整路径,但当此变量传递到os.system时(在源代码管理工具中执行命令)作为一个论点,我得到了路径拆分为2的问题,以空格作为分隔符。python文件与该目录的关系在哪里?您可以通过两种不同的方式来实现这一点,如果您将它放在相对较近的位置,您可以根据当前文件夹上下文动态构建它。最简单的方法可能是什么不过,在这种情况下,st对您来说是执行类似以下操作:导入os文件\u path=os.path.join('D:\'、'pat'、'reg prg'、'text.1')这工作非常好。非常感谢。我使用了命令subprocess.call([“ccm”、“co”、“-task”、dict\u ir\u task[key1]、path\u ergoplan+“/”+files、>>co.log“]))