Проблема возникает в Chrome v. 29
Решение заключается в обновлении до более новой версии, например. 30 (или перейдите к 28, если хотите)
Чтобы проверить версию, введите строку URL: chrome://version
Сначала вам нужно удалить текущую версию (ваш профиль данные останутся нетронутыми):
sudo apt-get remove chromium-browser
Затем установите новую версию. Вы можете скачать установочный пакет здесь: http://www.ubuntuupdates.org/package/ubuntu_mozilla_security/saucy/main/base/chromium-browser
(выберите версию для вашего дистрибутива и архитектуры) [!d7 ]
Как только у меня была ссылка на установщик, так я установил пакет для x64 Saucy через терминал:
wget http://ppa.launchpad.net/ubuntu-mozilla-security/ppa/ubuntu/pool/main/c/chromium-browser/chromium-browser_30.0.1599.114-0ubuntu0.13.10.2_amd64.deb
sudo dpkg -i chromium-browser_30.0.1599.114-0ubuntu0.13.10.2_amd64.deb
rm chromium-browser_30.0.1599.114-0ubuntu0.13.10.2_amd64.deb
В приведенном ниже скрипте будут скопированы изображения с соотношением 4: 3 из рекурсивно исходного каталога в целевой каталог.
#!/usr/bin/env python3
import os
import shutil
from PIL import Image
import sys
dr = sys.argv[1]; target = sys.argv[2]
for root, dirs, files in os.walk(dr):
for f in files:
try:
file = root+"/"+f
img = Image.open(file); size = img.size; ratio = size[0]/size[1]
if ratio == 4/3:
shutil.copyfile(file, target+"/"+f)
except (IOError, ValueError):
pass
python3 /path/to/search_ratio.py /source/directory /target/directory
Если одна или несколько каталогов содержат пробелы, используйте кавычки. Пример команды, которую я использовал для тестирования:
python3 '/home/jacob/Bureaublad/pscript_4.py' '/home/jacob/Bureaublad' '/home/jacob/Afbeeldingen/test'
Тогда сценарий может быть немного проще: [ ! d10]
#!/usr/bin/env python3
import os
import shutil
from PIL import Image
import sys
dr = sys.argv[1]; target = sys.argv[2]
for f in os.listdir(dr):
try:
file = dr+"/"+f
img = Image.open(file); size = img.size; ratio = size[0]/size[1]
if ratio == 4/3:
shutil.copyfile(file, target+"/"+f)
except (IOError, ValueError):
pass
Используйте его точно так же, как и первый.
Обратите внимание, что при первом скрипте вы получите столкновения имен в случае дублированных имен в разных исходных папках.