python 中 #-*-coding: UTF-8 -*-的作用
#-*-coding: UTF-8 -*- 解决python2 中 中文乱码报错的问题
001、
[root@pc1 test1]# ls a.fa test.py [root@pc1 test1]# cat a.fa ## 测试数据 >chr1 xxx aaaggg eeee >chr2 yyy dddddgggg dedeee >chr3 zzz eeeeeexxxx [root@pc1 test1]# cat test.py ## 测试程序 #!/usr/bin/python # 测试 ## 加中文注释 in_file = open("a.fa", "r") out_file = open("result.fa", "w") for i in in_file: i = i.strip() if i.startswith(">"): out_file.write(i + "\n") in_file.close() out_file.close() [root@pc1 test1]# python2 test.py ## python2 报错 File "test.py", line 3 SyntaxError: Non-ASCII character '\xe6' in file test.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details [root@pc1 test1]# python3 test.py ## python3 没有问题 [root@pc1 test1]# ls a.fa result.fa test.py
脚本中增加:#-*-coding: UTF-8 -*-
[root@pc1 test1]# ls a.fa test.py [root@pc1 test1]# cat test.py #!/usr/bin/python #-*-coding: UTF-8 -*- ## 增加改行 # 测试 in_file = open("a.fa", "r") out_file = open("result.fa", "w") for i in in_file: i = i.strip() if i.startswith(">"): out_file.write(i + "\n") in_file.close() out_file.close() [root@pc1 test1]# python2 test.py ## python2运行没有问题 [root@pc1 test1]# ls a.fa result.fa test.py