我正在使用这个 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/