воскресенье, 28 мая 2023 г.

Set Photo "date taken" field as a file attributes(creation, modified, access)


import os, pathlib, exifread, time, datetime
from win32_setctime import setctime
for path in os.listdir('.'):
    if os.path.isfile(path) and pathlib.Path(path).suffix!='.py':
        with open(path, 'rb') as image:
            exif = exifread.process_file(image)
            try:
                crtdate = time.mktime(datetime.datetime.strptime(str(exif['EXIF DateTimeOriginal']), "%Y:%m:%d %H:%M:%S").timetuple())
                os.utime(path, (crtdate, crtdate))
                setctime(path, crtdate)
            except:
                print('hello')

пятница, 30 декабря 2022 г.

PS2 video convertation

The script converts videos to AVI format. The results can be play in SMS (Simple Media System) player.

import glob
import os

FFMPEG_EXEC = "C:\\Users\\user\\convertation\\ffmpeg-n4.4-latest-win64-gpl-4.4\\bin\\ffmpeg.exe"
source_files = []
output_files = []
for filename in glob.iglob(os.path.join(os.getcwd(),'MP4\*.*'), recursive=True):
    source_files.append(filename)
    output_files.append(os.path.join(os.getcwd(),"AVI",os.path.basename(filename)[:-4] + ".avi"))

for i in range(0,len(source_files)):
    cmd = f'{FFMPEG_EXEC} -i \"{source_files[i]}\" -filter:v scale=1024:-1 -q:v 5 -c:a copy \"{output_files[i]}\"'
    process = subprocess.check_output(cmd)

четверг, 10 мая 2018 г.

Replace string in files

user@linux:/>find ./ -name "filename" -exec sed -i 's/old_value/new_value/g' {} +

вторник, 27 декабря 2016 г.

Операторы регулярных выражений Python

.

Один любой символ, кроме новой строки \n.

?

0 или 1 вхождение шаблона слева

+

1 и более вхождений шаблона слева

*

0 и более вхождений шаблона слева

\w

Любая цифра или буква (\W — все, кроме буквы или цифры)

\d

Любая цифра [0-9] (\D — все, кроме цифры)

\s

Любой пробельный символ (\S — любой непробельнй символ)

\b

Граница слова

[..]

Один из символов в скобках ([^..] — любой символ, кроме тех, что в скобках)

\

Экранирование специальных символов (\. означает точку или \+ — знак «плюс»)

^ и $

Начало и конец строки соответственно

{n,m}

От n до m вхождений ({,m} — от 0 до m)

a|b

Соответствует a или b

()

Группирует выражение и возвращает найденный текст

\t, \n, \r

Символ табуляции, новой строки и возврата каретки соответственно

четверг, 22 декабря 2016 г.

lsblk

List info about all block devices