Python-cylkus s funkciou listdir() – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Python-cylkus s funkciou listdir() – Python – Fórum – Programujte.comPython-cylkus s funkciou listdir() – Python – Fórum – Programujte.com

 

Lubomir
~ Anonymní uživatel
5 příspěvků
21. 11. 2018   #1
-
0
-

Zdravím, mám kód ktorý načíta cestu k fotke tváre a vypíše z nej parametre osoby ako napr. emócie,vek atd. Potrebujem to dať cyklu aby mi y priečinka načítalo všetky fotky za sebou a vypísalo ich parametre ako idu fotky tak aby medzi každou fotkou bolo oneskorenie 5 sekúnd. Pokúšal som sa to spraviť cez listdir ale nefunguje to ako by malo. Skompiluje kód ale nič nevypíše. Ešte by som potreboval aby fotky nevypisalo alo rovno ukladalo ako csv súbor. Dám tu svoj kód lebo fakt neviem kde mám chybu.

import requests
import os



BASE_URL = 'https://westeurope.api.cognitive.microsoft.com/face/v1.0/detect'
headers = {
    'Ocp-Apim-Subscription-Key': 'd7264e9252674c9292b0d8b295cf3251',
    'Content-Type': 'application/octet-stream'
}
parameters = {
    'returnFaceId': 'true',
    'returnFaceLandmarks': 'false',
    'returnFaceAttributes': 'age,gender,emotion'
}


img_path = 'C:\\Users\\Pifko\\Desktop\\bakalarka\\ffmpeg-20181107-0c6d4e7-win64-static\\ffmpeg-20181107-0c6d4e7-win64-static\\bin\\all'
files = os.listdir(img_path)

for file in files:
    file = os.path.join(img_path,file)
img_data = open(file, 'rb').read() 

def post_image(img_data):
    response = requests.post(BASE_URL, params=parameters,
                             headers=headers, data=img_data)
    try:
        return response.json()
    except:
        return None
print(post_image(img_data))


#delay 3 sekundy,
#nevypise ale ulozi obrazok, dat do csv suboru,
Nahlásit jako SPAM
IP: 95.103.122.–
Belpir
~ Anonymní uživatel
3 příspěvky
18. 12. 2018   #2
-
0
-

Ahoj,

To Microsoftí API vždy vrací prázdný seznam jako odpověď a v response.content obsahuje prázdný bytesting. Předpokládám, že už není validní atuth token (subscription-key), proto jen odhaduji výsledný formát.

#! /usr/bin/env python3


import requests
import os
import time

BASE_URL = 'https://westeurope.api.cognitive.microsoft.com/face/v1.0/detect'
headers = {'Ocp-Apim-Subscription-Key': 'd7264e9252674c9292b0d8b295cf3251', 'Content-Type': 'application/octet-stream'}
parameters = { 
    'returnFaceId': 'true',
    'returnFaceLandmarks': 'false',
    'returnFaceAttributes': 'age,gender,emotion'
}


img_path = 'C:\Users\Pifko\Desktop\bakalarka\ffmpeg-20181107-0c6d4e7-win64-static\ffmpeg-20181107-0c6d4e7-win64-static\bin\all'
# img_path = '/home/ruzekpav/Documents/virtualbox/tmp'

def post_image(img_data):
    response = requests.post(BASE_URL, params=parameters, headers=headers, data=img_data)
    try:
        return response.json()
    except:
        return None

def toCsv(csvFileName, response, separator=';'):
    '''Save output to given csv file.'''
    assert isinstance(response, list), 'API response have to be a list.'
    line = separator.join(response)
    with open(csvFileName, 'a') as F:
        F.write(f'{line}\n')

for f in os.listdir(img_path):
    absFile = os.path.join(img_path, f)
    if not os.path.isfile(absFile):
        print(f'The {absFile} is not a file, skipping.')
        continue
    with open(absFile, 'rb') as F:
        img_data = F.read()
    response = post_image(img_data)
    # save results to .csv
    toCsv('vysledky.csv', response)
    # print result's each line in 3s interval
    print(f"API's response of {absFile} => {response}")
    time.sleep(3)
Nahlásit jako SPAM
IP: 217.170.105.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Podobná vlákna

Modul OS a funkce listdir — založil DooFy93

Problém s funkciou — založil Kent

Problem s funkciou execve — založil Payne

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý