Я пытаюсь удалить файлы. Я проверяю дату и удаляю, если она старше меня. Я заметил, что один .zip-файл не удалялся. Он был только для чтения, поэтому в небольшом тестовом коде я использовал os.chmod (путь, stat.S_IWRITE), а затем os.remove (path), и он сработал. Я поместил этот код в свой основной код и получил ошибку. Я импортирую модуль os и stat в обоих.AttributeError: объект 'nt.stat_result' не имеет атрибута 'S_IWRITE'
Ниже тестовый код, который работает, но когда я это в большей код, который я получил ошибку и полный код это просто четкости, а также:
AttributeError: «nt.stat_result» объект имеет no attribute 'S_IWRITE'
Я проверил, что dpath и dayscount проходят путь и количество дней.
import os, stat
def del_file(dpath, dayscount):
if dayscount > 10:
if dpath[-4:]== ".zip":
os.chmod(dpath,stat.S_IWRITE)
os.remove(dpath)
else:
os.remove(dpath)
else:
print "File is Good"
dpath = "C:\Workspace\Test_Data.zip"
dayscount = 15
del_file(dpath, dayscount)
После прочтения здесь я нашел ссылку: Code on this page, который показал некоторые примеры импортирующих модулей. Ответ сказал, чтобы импортировать модуль в функцию. Я пробовал это по моему основному коду, и это сработало.
Основной код импортирует os и stat в верхней части кода, но эта функция, похоже, не видит его. И я не знаю, почему. Когда я импортирую его в модуль, он видит его. Поэтому, когда в основной код мне пришлось добавить импорт в модуль, см. Ниже.
import os, stat
def test_date():
Code for this function
def get_month():
Code for this function
def del_file(dpath, dayscount):
import os, stat
print dpath
print dayscount
if dayscount > 10:
if dpath[-4:]== ".zip":
os.chmod(dpath,stat.S_IWRITE)
#os.remove(dpath)
else:
os.remove(dpath)
else:
print "File is Good"
dpath = "C:\Workspace\Test_Data.zip"
dayscount = 13
del_file(dpath, dayscount)
Это было, у меня был stat как переменная где-то в другом месте, измените его, и он работает без необходимости импортировать его снова. Благодарю. – user1015375