重构代码:我正在尝试将代码重构为“更好”的形式。以生产质量“最佳实践/清洁”代码为目标

问题描述 投票:0回答:1

我不了解Scon,因此与重构有些混淆。虽然,我将从0755中删除“ 0”(由于无效的令牌SyntaxError)。关于我可以做什么的任何建议,包括文档字符串/注释。

import os
import re


# #SCONSTRUCT file interesting line
# config.version = Version( 
#     major=15,
#     minor=0,
#     point=6,
#     patch=0
# )
def updateSconstruct():
    os.chmod(os.path.join(os.environ["SourcePath"],"develop","global","src","SConstruct"), 0755)
    fin = open(os.path.join(os.environ["SourcePath"],"develop","global","src","SConstruct"), 'r')
    fout = open(os.path.join(os.environ["SourcePath"],"develop","global","src","SConstruct1"), 'w')

    for line in fin:
        pattern=re.sub("point\=[\d]+","point="+os.environ["BuildNum"],line)
        fout.write(pattern)
    fin.close()
    fout.close()
    os.remove(os.path.join(os.environ["SourcePath"],"develop","global","src","SConstruct"))
    os.rename(os.path.join(os.environ["SourcePath"],"develop","global","src","SConstruct1"),
              os.path.join(os.environ["SourcePath"],"develop","global","src","SConstruct"))

# # VERSION file interesting line
# ADLMSDK_VERSION_POINT=6
def updateVersion():
    os.chmod(os.path.join(os.environ["SourcePath"],"develop","global","src","VERSION"), 0755)
    fin = open(os.path.join(os.environ["SourcePath"],"develop","global","src","VERSION"), 'r')
    fout = open(os.path.join(os.environ["SourcePath"],"develop","global","src","VERSION1"), 'w')

    for line in fin:
        pattern=re.sub("ADLMSDK_VERSION_POINT\=[\d]+","ADLMSDK_VERSION_POINT="+os.environ["BuildNum"],line)
        fout.write(pattern)
    fin.close()
    fout.close()
    os.remove(os.path.join(os.environ["SourcePath"],"develop","global","src","VERSION"))
    os.rename(os.path.join(os.environ["SourcePath"],"develop","global","src","VERSION1"),
              os.path.join(os.environ["SourcePath"],"develop","global","src","VERSION"))


def main():
            updateSconstruct()
            updateVersion()


main()
python-3.x scons
1个回答
0
投票
  • 使用with打开文件(在发生异常时自动关闭文件)。
  • 创建重复的路径名(并使用pathlib联接路径)。
  • 使用诸如black之类的格式化程序进行适当的缩进和格式化。
  • 使用if __name__ == "__main__":而不是单个main()调用。
  • 如果找不到所需的环境变量,请及早退出并使用明智的默认值。
  • 而不是环境变量使用函数参数。
  • 而不是在每行上应用正则表达式-您可以使用单个正则表达式修改整个文件吗?
  • 编写文档字符串。函数甚至做什么?
© www.soinside.com 2019 - 2024. All rights reserved.