OS.UTIME () сбой с ошибки разрешения, несмотря на разрешения File 777Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 OS.UTIME () сбой с ошибки разрешения, несмотря на разрешения File 777

Сообщение Anonymous »

У меня есть файлы, которые были резервированы до USB -диска с использованием команды CP -R без указания на сохранение временной метки. Тем не менее, большинство из этих файлов имеют заголовок, который содержит дату создания в UTC. < /P>
Я хотел бы установить модифицированную временную метку этих файлов в локальное время (UTC-07: 00), но мой скрипт Python провален с: < /p>

permissorror: [errno 1] < / /> permissoror: rerno 1. />
Модифицированный файл находится на USB -накопителе, установленном как/media/myname/backup/... но я не понимаю, почему это должно иметь значение. Используя команду Touch -t , я могу изменить TimeStamp этого файла без ошибок разрешения. Но при запуске из сценария Python я получаю ошибку: < /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>
/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*
< /code>
Система - Ubuntu 24.04.2 LTS с Python 3.12.3. Сеть-это домашняя сеть, подключенная Wi-Fi. Никаких правил системного администрирования, кроме того, что указывает автоподобная ОС. /> [*] Владелец файла не должен быть пользователем в системе хоста (но, возможно, он не будет неудачником, даже если пользователь является признанным пользователем в системе). < /li>
 Напишите скрипт Python, чтобы изменить модифицированную временную метку этого файла с использованием ошибки Os.utime () < /code>.python script.py
).
[*] Если запустить в Sudo (

Код: Выделить всё

sudo python script.py
) скрипт будет успешным.

Почему это так?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ermissions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»