Работа со списочной переменной в Python 3 и удаление папок на ее основе - PullRequest
0 голосов
/ 15 октября 2019

Извините, если я назвал это неправильно, это моя первая попытка в python создать какой-нибудь рабочий скрипт. Я сделал список с Dictionary Cursor, но теперь мне нужно работать с переменными и удалять папки. Например.

Если я найду в /data/system/domain.tld, а domain.tld указан в моем списке выбора в ["name"], я хочу удалить этот каталог. Как мне продолжить работу с моим кодом, когда я хочу эту функцию?

import pymysql.cursors
import os
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='password',
                             db='database',
                             cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
sql="SELECT id, name, state FROM domain WHERE state='2'"
cursor.execute(sql)
records = cursor.fetchall()
print("Total number of records for deleting is: ", cursor.rowcount)

print("\nPrinting each domain record")
for row in records:
    print (row)
    print("id = ", row["id"], )
    print("name = ", row["name"])
    print("state  = ", row["state"], "\n")

1 Ответ

1 голос
/ 15 октября 2019

Если предположить, что приведенный выше синтаксис работает правильно, то есть создает строки, в которых значения row[name] являются путями каталогов, которые вы хотите удалить, тогда вам просто нужно добавить команду удаления в цикл for как новыйline.

Удалить файл или папку

Приведенная выше ссылка содержит гораздо больше информации о том, как удалять файлы и папки с помощью Python. Глядя на верхний ответ, функция shutil.rmtree() выглядит так, как будто она должна удалять каталог на основе заданного пути.

Документацию shutil можно найти здесь

, если вы хотите продолжить печатать все эти переменные, вашему циклу for просто потребуется дополнительная строка с функцией shutil.rmtree():

for row in records:
    print (row)
    print("id = ", row["id"], )
    print("name = ", row["name"])
    print("state  = ", row["state"], "\n")
    shutil.rmtree(row["name"])
...