c# - 将文本文件添加到我的代码的开头会导致解析错误

标签 c# python eof

我正在使用这个 python 脚本将版权声明添加到我所有的 C# 脚本的开头

import re
import shutil
import os

copyrightloc =  'C:/DATA/pyscripts/copyright.txt'
rootdir = 'C:/DATA/pyscripts/02_CODE'
dstdir = 'C:/DATA/pyscripts/codecopy'

spielfile =  open(copyrightloc, "r") 
spiel = spielfile.read() 

for subdir, dirs, files in os.walk(rootdir):
    for file in files:
        if file.endswith(".cs"):
            with open(subdir+'/'+file, "r+") as codefile ,  open(dstdir+'/'+file, 'w') as destfile:
                destfile.write(spiel+'\n' + codefile.read())

如您所见,我将原始字符串添加到版权字符串并将其写入新文件。

文件完成后看起来不错,但在每个文件中,在原始文件的第一行,我都遇到了解析错误。例如,下面显示了版权声明末尾和原始文件开头的新文件的摘录...

          BLAH BLAH BLAH COPYRIGHT
  * OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
  * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
  * CONTRACT, NEGLIGENCE, TORT OR OTHERWISE, ARISING OUT OF OR IN
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE OR ITS DERIVATIVES.
  */


using UnityEngine;   [!!!ERROR IS SHOWN ON THIS LINE!!!]
using System.Collections;

public class Floop : MonoBehaviour {

    public rot glorb;
    public GameObject foo;

              BLAH BLAH BLAH MY CODE

我猜那里有一些不可见的字符,比如“文件结尾”之类的,但是当我选择“显示所有字符”时,我在 Notepad++ 中看不到任何东西……如果我转到相关行的开头然后点击删除错误消失.. 我怎样才能让我的 python 脚本避免这个问题?

最佳答案

MSDN C# style guide说你不应该在评论周围使用星号 block 。您可以尝试在版权的每一行前面加上 // 前缀吗?

Alternatively ,您可以使用这种格式(注意每行开头没有星号):

/*
copyright here
*/

关于c# - 将文本文件添加到我的代码的开头会导致解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635507/

相关文章:

python - Pandas 数据框中的自定义排序

c 结构的 Python ctypes 定义

c - 为什么我使用 fputc 编写的文件不会终止?

c# - 如何在不实例化它们的情况下测试两个泛型是否具有基子类关系?

c# - WPF UI 允许用户构建复杂查询并输出表达式树

python - 将图片和绘图与带有 alpha channel 的 matplotlib 结合起来

c++ - cin.clear() 将 EOF 留在流中?

c - getchar() != EOF 循环查看下一个字符

c# - 从类型名称和程序集名称创建实例

c# - 从 mvc3 下拉列表中渲染和选择数据