Cкрипт копирует испорченные файлы из всех подпапок в главную папку, вместо того, чтобы портить файлы в самих этих папках. — Python

269 просмотра
0
0 Комментариев

Задача — Есть папка firefox. В ней есть множество других папок с файлами. Находясь в самой главной папке запускаю:

def corruptit(filE):
    time.sleep(0.1)
    os.system("echo '' > " + filE)
    time.sleep(0.1)
    os.rename(filE, filE + ".cpt")
 
def corrupter():
    for root, subdirs, files in os.walk("."):
        print("root", root)
        print("subdirs", subdirs)
        print("files", files)
        print("-"*10)
        for filename in files:
            if filename.endswith(".py"):
                pass
            else:
                corruptit(filename)

Проблема в том, что когда запускаешь скрипт в главной папке, то скрипт копирует испорченные файлы из всех подпапок в главную папку, вместо того, чтобы портить файлы в самих этих папках. В чём моя ошибка ?


Добавить комментарий

1 Ответы

Python Опубликовано 18.12.2018
0

Проблема в том, что в corruptit(filename) вы передаете имя файла без пути. Вот он и пишет в ту папку, откуда запускается.

Передавать надо полное имя файла, включая root, subdirs и filename.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up