У меня есть куча файлов, которые были резервированы до USB -диска с использованием команды CP -R, без указания на сохранение временной метки. (Тупая ошибка, я знаю). Тем не менее, большинство из этих файлов имеют определенный заголовок, из которого можно прочитать дату (в UTC), когда файл был создан. Я хотел бы установить модифицированную метку времени этих файлов в локальную версию этой временной метки (которая, как оказалось, является UTC-07: 00). < /P>
Но мой скрипт Python для этого-сбое с ошибкой разрешения. < /P>
PermissionError: [Errno 1] Operation not permitted
Единственное, о чем я могу придумать, это вызвало бы, чтобы это модифицированный файл находится на USB -диске, который установлен как/Media/myname/backup/... но я не понимаю, почему это должно иметь значение.
Кроме того, используя команду touch -t , я могу изменить Timestamp этого файла без разрешений. Но при запуске из сценария Python я получаю ошибку. < /P>
Это код: < /p>
obs_date = str(HeaderItemsOfInterest(hdr))
utc_time = datetime.fromisoformat(obs_date)
utc_timestamp = utc_time.timestamp()
local_timestamp = utc_timestamp - tucson_offset
local_time = datetime.fromtimestamp(local_timestamp)
print(f"{p}:")
print(f" UTC_time:{obs_date} ==>")
print(f" MST_time:{local_time}")
os.utime(p, (int(local_timestamp), int(local_timestamp)))
< /code>
Последняя строка вызывает ошибку. < /p>
И это выход, включая выходной сигнал: < /p>
/media/scohen/backup/stellarmate/Pictures/Betelgeuse/Light/Betelgeuse_Light_001.fits:
UTC_time:2025-01-18T02:07:22.703 ==>
MST_time:2025-01-17 19:07:22.703000
Traceback (most recent call last):
File "/usr/lib/python3.12/idlelib/run.py", line 580, in runcode
exec(code, self.locals)
File "/home/scohen/python/fits/fitsredater.py", line 83, in
process_directory(item)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/scohen/python/fits/fitsredater.py", line 50, in process_directory
process_file(item)
File "/home/scohen/python/fits/fitsredater.py", line 41, in process_file
localize_date(p)
File "/home/scohen/python/fits/fitsredater.py", line 35, in localize_date
os.utime(p, (int(local_timestamp), int(local_timestamp)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 1] Operation not permitted
< /code>
И вот список каталогов файла, который я пытаюсь изменить: < /p>
$ ll
total 2416
drwxrwxrwx 2 1000 1000 4096 Jul 27 14:56 ./
drwxrwxrwx 3 1000 1000 4096 Jul 27 14:56 ../
-rwxrwxrwx 1 1000 1000 2465280 Jan 17 2025 Betelgeuse_Light_001.fits*
Подробнее здесь: https://stackoverflow.com/questions/797 ... -file-bein
Python os.utime () вызов вызов с ошибкой разрешения, даже если измененный файл имеет 777 разрешений [закрыто] ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
OS.Utime () Сбой с ошибкой разрешения, несмотря на разрешения File 777 [закрыто]
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-