Python:测试文件是否存在于绝对路径中

时间:2014-07-02 03:38:57

标签: python testing for-loop path absolute

问候我是一个试图把东西放在一起的蟒蛇诺布。基本上我有一个包含文件绝对路径的ini文件,我希望python测试文件是否存在。我有一个错误,文件总是出现缺失,我认为这与我格式化路径的方式有关。我可能完全错了。

请记住,循环尚未创建,我试图首先解决这个问题。但是,对于该计划其余部分的任何建议也将受到赞赏。我的目的是让它循环,但所有部分都会看到标记为key的文件是否存在。然后它在配置文件中设置一个标记为status的值。

这是我的配置文件:

[server1] 
key = "C:\\test1.txt" 
status = 3

[server2] 
key = "M:\\test2.txt" 
status = 1

这是我的计划:

#IMPORTS
import ConfigParser
import os
import os.path
#SET SECTION NUMBER
x = 1
y = 'server'+ str(x)
#DEBUG
print y
#READ CONFIG FILE
config = ConfigParser.ConfigParser()
config.readfp(open(r'server.ini'))
key = config.get((y), 'key')
#DEBUG
print (key)
#CHECK IF FILE EXISTS
if os.path.isfile((key)):
    print "file is there"
    config.set((y), 'status', '1')
    config.write(open(r'server.ini', "w"))
else:
    print "file is missing"
    config.set((y), 'status', '3')
    config.write(open(r'server.ini', "w"))

1 个答案:

答案 0 :(得分:1)

如果检查程序的输出,您会看到key值为:

"C:\\test1.txt"

问题是报价。如果你摆脱那些,它可以正常工作:

server.ini:
    [server1]
    key = C:\test1.txt
    status = 3

    [server2]
    key = M:\test2.txt
    status = 1

如果您由于某种原因无法更改文件(可能是外部提供),您可以在使用密钥之前删除引号,更改:

key = config.get((y), 'key')

成:

key = config.get((y), 'key').strip('"')

你还会注意到我已经删除了反斜杠,因为它们是你需要的源代码中的字符串文字。在字符串中INI文件,单个反斜杠也可以。