用Python读/写文本文件

用Python读/写文本文件,python,file,exception,Python,File,Exception,我对Python相当陌生,不完全了解所有项目,我已经为一个程序打下了基础,我需要修改bits,以下是我到目前为止所做的: import sys, os filename = 'C:\main\in.txt' resultFile = 'C:\main\out.txt' try: file = open( filename, "w" ) except Exception, e: logger.critical( "Fai

我对Python相当陌生,不完全了解所有项目,我已经为一个程序打下了基础,我需要修改bits,以下是我到目前为止所做的:

    import sys, os

    filename   = 'C:\main\in.txt'
    resultFile = 'C:\main\out.txt'

    try:
       file = open( filename, "w" )
    except Exception, e:
        logger.critical( "Failed to create file \"%s\" : %s" % ( filename, e )

    for name, value in brg.iteritems():
        if -1 == string.find( name, "CTRL" ) and name not in [ "name", "type" ]:
            file.write( "%s = %s\n" % ( name, value ) )
            file.close()

   # run the Fortran programme

    resultCode = os.system( '%sC:\main\Debug\main.exe -i %s -o %s.result' % ( options[ OPTION_script_path ], filename, filename ) ) 

    # Read the results

    try:
        file = open( resultFile, "r" ) 
    except Exception, e:
        logger.critical( "Failed to create file \"%s\" : %s" % ( resultFile, e ) 

        regexp = re.compile( "^(?P<name>.*)\\s*=\\s*(?P<value>.*)$" )
        for row in file.xreadlines():
        row = row.strip( "\\r\\n \\t" )
        m = regexp.match( row )
        if m:
                name = m.group( "name" )
                value = m.group( "value" )
                brg[ name ] = value
导入系统,操作系统 文件名='C:\main\in.txt' 结果文件='C:\main\out.txt' 尝试: 文件=打开(文件名为“w”) 除例外情况外,e: logger.critical(“未能创建文件\%s\:%s%”(文件名,e) 对于名称,brg.iteritems()中的值: 如果-1==string.find(name,“CTRL”)和name不在[“name”,“type”]: file.write(“%s=%s\n”%(名称、值)) file.close()文件 #运行Fortran程序 resultCode=os.system(“%sC:\main\Debug\main.exe-i%s-o%s.result%”(选项[选项脚本路径]、文件名、文件名)) #阅读结果 尝试: 文件=打开(结果文件,“r”) 除例外情况外,e: logger.critical(“未能创建文件\%s\:%s%”(结果文件,e) regexp=re.compile(“^(?P.*)\\s*=\\s*(?P.*)$”) 对于文件.xreadlines()中的行: 行=行.strip(\\r\\n\\t) m=regexp.match(行) 如果m: 名称=m.group(“名称”) 值=m.组(“值”) brg[name]=值
我完全不明白为什么它现在不能工作,因为它发现了一个语法错误:for name,value in bearing.iteritems():

我不确定有些错误是否是由于缩进造成的

我也不太理解最后一部分。我有一个输出文本文件,这是最后一部分正在阅读的内容。但我不理解(特别是)这一行:

regexp = re.compile( "^(?P<name>.*)\\s*=\\s*(?P<value>.*)$" )
regexp=re.compile(“^(?P.*)\\s*=\\s*(?P.*)$”)
对于RE's,我不太明白“匹配”到底意味着什么,^,$and?p匹配到什么?还有“regexp”代表什么

谢谢您的时间=)

有两个左
,只有一个右
。这似乎是语法错误

由于语句未完成,Python将继续解析


阅读以下内容:然后用正则表达式的更具体方面更新您的问题,这些方面会让您感到困惑。正则表达式是一个(可能)深入的主题

有两个左
,只有一个右
。这似乎是语法错误

由于语句未完成,Python将继续解析



阅读以下内容:然后使用正则表达式的更具体方面更新您的问题,这会让您感到困惑。正则表达式是一个(可能)深入的主题。

“语法错误:对于名称,轴承中的值。iteritems()”?请在您的问题中包含实际语法错误输出。如果您的代码是真实代码,请使用brg(或轴承)在您将其用于循环之前未定义……”我…不理解(特别是)这一行:“用非常简单的术语”很难做到。请澄清您对该行的理解和不理解。我们不知道“简单”程度如何您的意思是。我们不知道您了解哪些部分。请提供一些您认为可能是什么的摘要,以便我们可以扩展和更正您的语句。请小心:filename='C:\main\in.txt'可以工作,但'\n.txt'不能工作。因为\n是换行符。请使用双反斜杠或r'C:\main\in.txt'@user982297:请停止添加注释s到您的问题。请更新您的问题以指出您不理解的内容。更新问题后,请删除与您对正则表达式的理解(和不理解)相关的两条注释。很难从大量注释中合成一个连贯的问题。如果您更新问题,这会有所帮助。“语法错误:对于名称,轴承中的值。iteritems()”?请在您的问题中包含实际语法错误输出。如果您的代码是真实代码,则在将其用于循环之前未定义brg(或轴承)…”我…不理解(特别是)这一行:“和”非常简单“很难做到。请澄清您对该行的理解和不理解。我们不知道有多“简单”您的意思是。我们不知道您了解哪些部分。请提供一些您认为可能是什么的摘要,以便我们可以扩展和更正您的语句。请小心:filename='C:\main\in.txt'可以工作,但'\n.txt'不能工作。因为\n是换行符。请使用双反斜杠或r'C:\main\in.txt'@user982297:请停止添加注释请更新您的问题,指出您不理解的内容。更新问题后,请删除与您所做(和不做)相关的两条注释了解正则表达式。很难从大量注释中合成一个连贯的问题。如果您更新您的问题,这会有所帮助。顺便说一句,AFAIK
logger.critical
也接受格式
logger.critical(“未能创建文件\%s\”:%s),文件名,e)
。谢谢,我不敢相信我没有看到!顺便说一句,AFAIK
logger.critical
也接受格式
logger.critical(“未能创建文件\%s\”:%s”,文件名,e)
。谢谢,我不敢相信我没有看到!
        logger.critical( "Failed to create file \"%s\" : %s" % ( filename, e )