Как удалить / удалить папку, которая не пуста в Python?

Весь этот ответ находится в контексте соответствия спецификации, а не того, что движок делает в определенный момент или исторически.

Как правило, нет

. Фактический вопрос очень расплывчатый.

будут ли свойства в том же порядке, что я добавил их

blockquote>

В каком контексте?

Ответ: это зависит от ряда факторов. В общем, no .

Иногда да

Здесь вы можете рассчитывать на порядок ключей свойств для plain Objects:

  • Соответствующий ES2015 двигатель
  • Собственные свойства
  • Object.getOwnPropertyNames(), Reflect.ownKeys(), Object.getOwnPropertySymbols(O)

Во всех случаях эти методы включают неперечислимые ключи свойств и ключи заказа, указанные в [[OwnPropertyKeys]] (см. ниже). Они различаются по типу ключевых значений, которые они включают (String и / или Symbol). В этом контексте String включает целые значения.

Object.getOwnPropertyNames(O)

Возвращает собственные свойства String O ] ).

Reflect.ownKeys(O)

Возвращает O собственные String - и Symbol клавиши свойства.

Object.getOwnPropertySymbols(O)

Возвращает собственные свойства Symbol O.

[[OwnPropertyKeys]]

Порядок по существу: целочисленный Strings в порядке возрастания, нецелоподобный Strings в порядке создания, Символы в порядке создания. В зависимости от того, какая функция вызывает это, некоторые из этих типов могут не включаться.

Специфическим языком является то, что ключи возвращаются в следующем порядке:

  1. .. каждый собственный ключ свойства P O [объект, который повторяется], который является целым индексом, в порядке возрастания числового индекса
  2. ... каждый собственный ключ свойства P из O который является строкой, но не является целым индексом, в порядке создания свойства
  3. ... каждый собственный ключ свойства P из O, который является символом, в порядке создания свойства
blockquote>

Map

Если вас интересуют упорядоченные карты, вы должны рассмотреть возможность использования типа Map, введенного в ES2015, вместо обычного Objects.

761
задан Sinister Beard 25 March 2015 в 09:09
поделиться

2 ответа

import shutil

shutil.rmtree('/folder_name')

Стандартное Справочное руководство по библиотеке: shutil.rmtree.

дизайном, rmtree сбои на деревьях папки, содержащих файлы только для чтения. Если Вы хотите, чтобы папка была удалена независимо от того, содержит ли она файлы только для чтения, то используйте

shutil.rmtree('/folder_name', ignore_errors=True)
1206
ответ дан Jean-François Corbett 25 March 2015 в 09:09
поделиться

От документы Python на os.walk():

# Delete everything reachable from the directory named in 'top',
# assuming there are no symbolic links.
# CAUTION:  This is dangerous!  For example, if top == '/', it
# could delete all your disk files.
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))
129
ответ дан Rodrigue 25 March 2015 в 09:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: