如何进行尊重字符编码的查找和替换?

时间:2014-02-14 13:53:17

标签: python .net python-3.x replace character-encoding

我们软件中的版权声明需要提升到2014年。这意味着:

  1. 打开名为AssemblyInfo.cs
  2. 的每个文件(在工作目录中或下面)
  3. 使用下面的完整行替换包含'AssemblyCopyright'的任何行。
  4.   

    [assembly:AssemblyCopyright(“Copyright©2014 Company”)]

    听起来很自然的完美小任务。我写了一个Python 3脚本,但它mullered(即mojibaked)版权符号。我想这是由于字符编码问题。

    那么,如何进行编码 - 尊重查找和替换?这会在不更改文件编码的情况下更改版权行。

    我不可靠的脚本是Python,但我不介意使用其他语言(C#,Ruby,Nodejs等),只要它有效。


    对于好奇,这是我的Python脚本。

    #!python
    import fnmatch
    import os
    
    matches = []
    for root, dirnames, filenames in os.walk('.'):
      for filename in filenames:
        if filename != 'AssemblyInfo.cs':
            continue
        path = os.path.join(root, filename)
    
        with open(path) as f:
            lines = list(f)
    
        new_lines = list()
        changed = False
    
        for line in lines:
            if "AssemblyCopyright" in line:
                line = '[assembly: AssemblyCopyright("Copyright © 2014 Company")]\r\n'
                changed = True
    
            new_lines.append(line)
    
        if not changed:
            continue
    
        print(path)
    
        with open(path, 'w') as f:
            f.write("".join(new_lines))
    

0 个答案:

没有答案