Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件不包含节头-Python_Python_Sectionheader_Config Files - Fatal编程技术网

文件不包含节头-Python

文件不包含节头-Python,python,sectionheader,config-files,Python,Sectionheader,Config Files,我正在尝试使用SafeConfigParser读取Python3.7中的配置文件。我尝试过用文件位置给出完整的文件名,只给出文件名而不给出文件位置,在SafeConfigParser中使用readfp函数,只使用configparser而不是SafeConfigParser,但都不起作用。我100%确信至少正在读取正确的文件 以下是我的python代码: from configparser import SafeConfigParser import os def main(): fi

我正在尝试使用SafeConfigParser读取Python3.7中的配置文件。我尝试过用文件位置给出完整的文件名,只给出文件名而不给出文件位置,在SafeConfigParser中使用readfp函数,只使用configparser而不是SafeConfigParser,但都不起作用。我100%确信至少正在读取正确的文件

以下是我的python代码:

from configparser import SafeConfigParser
import os

def main():
    filename = "C:/Users/Umer Sherdil Paracha/Desktop/distutils.cfg"
    if os.path.isfile(filename):
        parser = SafeConfigParser()
        parser.read(filename)
        print(parser.sections())
        screen_width = parser.getint('graphics','width')
        screen_height = parser.getint('graphics','height')
    else:
        print("Config file not found")

if __name__=="__main__":
    main()
这是我的cfg文件:

[GRAPHICS]
height = 600
width = 800

我完全被这个愚蠢的问题困住了。在此方面的任何帮助都将不胜感激。谢谢。

很难说清楚,但我猜您的文件名字符串有问题

请先尝试这段调试代码:

filename = "C:/Users/Umer Sherdil Paracha/Desktop/distutils.cfg"
with open(filename) as file:
    print("Successfully got to this line!")
我猜它会给你抛出一个文件未找到的错误。这可能有两个原因,但您可以通过右键单击文件并打开属性来反复检查路径是否正确:

您正在使用unix样式的斜杠。 当您开始在字符串中使用反斜杠时,python可能会感到困惑,因为反斜杠也用于转义特殊字符。通过在开始引号之前添加一个r告诉python这是一个:r\I不会\escape反斜杠 我相信您的filename变量应该如下所示:

filename = r"C:\Users\Umer Sherdil Paracha\Desktop\distutils.cfg"
如果您在文件字符串中进行了这两项更改,我怀疑上面的测试代码会起作用,在进行这些更改之后,您的真实代码也会起作用

成功打开文件后,请记住python始终区分大小写,因此您必须更新以下两行代码,以反映.cfg文件中使用的大小写:

[GRAPHICS]
height = 600
width = 800
screen_width = parser.getint('GRAPHICS','width')
screen_height = parser.getint('GRAPHICS','height')

与Windows ini文件一起使用

r'pathname'  
识别文件

r"pathname"

也可能有效。在我的例子中,如果没有r Python在ConfigParser.read上没有错误,它只是找不到节。

尝试将节头重命名为代码中的[graphics]。如果它不起作用,也可以尝试删除高度为600之间的空间。在parser中尝试使用“GRAPHICS”而不是“GRAPHICS”。getInt您可以发布收到的错误消息吗?您的代码是否命中配置文件未找到块?