2014-01-24 26 views
3

我正在研究一个计算器程序,作为一个更大的项目的一部分,当我终于认为完成了它时,我测试了定义的“退出”命令。然而,它失败了,经过一番调查,我来到了这里。我需要知道的是如何让(路径)参数具有一组预定义的路径,但也有一个用于实际文件名的变量。例如:/ HDD/APPS /(在这里插入变量)。你如何使用“os.path.isfile()”设置“路径”,但在Python 2.7中的变量文件名?

这是错误,并且在发生错误的行:

File "../../C.py", line 19 
     if (not os.path.isfile('/HDD/APPS/'exe)): 
              ^
    SyntaxError: invalid syntax 
+2

'如果(不是os.path.isfile( '/ HDD/APPS /' + STR(EXE))):' –

+0

谢谢你,Priyank。这正是我正在寻找的。 – user3230819

+0

好吧,好...现在出现了一个新的错误。我想这次我只是发布所有适用的代码,并让你们弄明白。这里是:Traceback(最近一次调用最后一个): 文件“/home/endergreen/PyOS/SHOE/C.py”,第54行,在 执行() 文件“/ home/endergreen/PyOS/SHOE/C.py“,第24行,执行 execfile(”/../../C.py“) IOError:[Errno 2]没有这样的文件或目录:'/../../C.py ' – user3230819

回答

5

连接两个字符串:

>>> exe = 'exefile' 
>>> '/HDD/APPS/' + exe 
'/HDD/APPS/exefile' 

更优选地,用os.path.join

>>> import os 
>>> os.path.join('/HDD/APPS/', exe) 
'/HDD/APPS/exefile' 
+0

为什么在这种情况下最好使用os.path.join?如果你不这样做,是否会导致意外的行为? – TechDude

+1

@TechDude,os.path.join负责分隔符(/)。操作系统有不同的分隔符。 – falsetru

+0

在这种情况下,将最终目录的尾部斜杠省略是否正确?像这样:'os.path.join('/ HDD/APPS',exe)' 事实上,不应该最好省略最终目录的尾部斜线以确保正确的分隔符将用于该目录OS? – TechDude

0

你需要连接exe字符串与其余。

if (not os.path.isfile('/HDD/APPS/' + exe)): 
相关问题