Как редактировать скрытый файл в Windows через Python?

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Создаю файл, делаю скрытым, и при попытке открыть в режиме записи получаю Permission denied
Получил права админа для скрипта - все равно не помогает. Никто не знает как это исправить
(Мне важно иметь возможность редактировать файл, пока он скрыт, не делая его на время открытым)

Python:
from elevate import elevate
import ctypes

# Перезапускаем скрипт с правами Администратора
elevate()

# Проверяем что запущено с правами Администратора
print('is Admin:', ctypes.windll.shell32.IsUserAnAdmin())
try:
    with open("C:\\test.txt", 'w') as f:
        pass
except Exception as e:
    print(e)
input()
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Несмотря на то, что вручную снять флаг `скрытый` у флага `desktop.ini` нельзя, я смог сделать это програмно:

Python:
import win32api

file = 'D:/3D/desktop.ini'

# Сохраняем атрибуты
attrs = win32api.GetFileAttributes(file)

# Снимаем все атрибуты
win32api.SetFileAttributes(file, 0x80)

# Открываем и редактируем если надо
with open(file, 'w') as f:
    print('open success')

# Устанавливаем изначальные атрибуты
win32api.SetFileAttributes(file, attrs)
 

Форум IT Специалистов