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

Python:测试文件是否存在于绝对路径,python,testing,for-loop,path,absolute,Python,Testing,For Loop,Path,Absolute,您好,我是一个python noob,正在尝试将一些东西组合在一起。实际上,我有一个ini文件,其中包含文件的绝对路径,我希望python测试该文件是否存在。我遇到了一个错误,文件总是显示为丢失,我认为这与我格式化路径的方式有关。我可能完全错了 请记住,循环尚未创建,但我正在尝试首先解决这一问题。不过,如果您对课程的其他部分有任何建议,我们也将不胜感激。我的意图是让它循环遍历所有部分,查看标记为key的文件是否存在。然后在配置文件中相应地设置一个标记为status的值 这是我的配置文件: [se

您好,我是一个python noob,正在尝试将一些东西组合在一起。实际上,我有一个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"))

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

"C:\\test1.txt"
问题在于引用。如果你摆脱了这些,它会正常工作:

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

    [server2]
    key = M:\test2.txt
    status = 1
如果由于某种原因(可能是外部提供的)您无权更改文件,则可以在使用密钥之前删除引号,更改:

key = config.get((y), 'key')
进入:


您还会注意到,我已经删除了双反斜杠,因为它们是源代码中需要的字符串文本。在INI文件的字符串中,单个反斜杠也同样有效。

调试
打印的内容正确吗?您是否在Windows计算机上(看起来像它,因为这些是Windows路径)。否它返回文件丢失,即使它在那里等待是。。它打印在配置文件中写入的内容。。是的,这些只是普通文件是吗?不是链接、挂载或文件夹?这不会有什么区别,但请尝试“C:/test1.txt”而不是“C:\\test1.txt”非常感谢。。。我从未想过尝试从ini文件中去掉“”标记。。我尝试了其他的一切。。。谢谢你,我做得很好
key = config.get((y), 'key').strip('"')