Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Stel een vraag

Discussieer mee of stel een vraag

Filters - Verfijn resultaten

Topictype

CategorieŽn

AND

Onderwerpen

AND

Subforum

Datumbereik

Topicstarter

Topicstatus

100 topics - Pagina 1 van 4

split txt file en tellen van het aantal woorden

21-03 12:41 vraag 1

Vraag

Ik heb een txt file met een htlm format dat drie artikelen aangegeven met < doc> < /doc> bevat.
Nu moet ik de woorden tellen en de volgende output krijgen:

[on] -> [1, 20] -> [2, 34] -> [3, 12]
[escape] -> [1, 7] -> [3, 2]

Echter heb ik nu code geschreven die alle woorden in het txt telt en niet apart voor de 3 artikelen:

import re
import nltk
import numpy as np
import matplotlib.pyplot as plt
from operator import itemgetter


file=open('/Users/ch 1/Desktop/data.txt')

def unicount(file):
dic={}

for word in file.read().split():
word = word.lower()
if tekens(word) == False:
continue
elif word in dic:
dic[word] += 1
else:
dic[word] = 1
print dic
print len(dic)
#print sorted(dic.items(), key=itemgetter(1)) ## print words on sorted count

#plt.bar(dic.keys(), dic.values(), align='center')
#plt.show()


def tekens(word):
''' Filtering out all punctuation marks'''
regex = re.compile("^[A-Za-z0-9]+$")
if regex.match(word):
return True
else:
return False

unicount(file)

Waar is als output het volgende krijg:
'effect': 1, 'deficits': 1, 'provide': 1

[Python] Directory verwijderen met wildcard in pad

06-03 12:33 vraag 6

Vraag

ik probeer met os.rmdir een lege directory in windows te verwijderen
voorbeeld: d:/naam-bekend/naam-onbekend/naam-bekend2

het gaat om de directory in de 3e level van het path [naam-bekend2]
ik gebruik de volgende code regel
os.rmdir('d:/naam-bekend/*/naam-bekend2')

ik krijg de volgende foutmelding:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect: 'd:/naam-bekend/*/naam-bekend2'

Ik vermoed dat dit komt door het gebruik van * als sub-directory, maar aangezien die naam random is zie ik geen andere mogelijkheid. De rest van het path zijn vaststaande namen.

kan iemand mij helpen aan een oplossing, dank u.
...

Beste antwoord

Om je in ieder geval een duwtje in de goede richting te geven. Kijk eens naar glob (https://docs.python.org/2/library/glob.html), daar zie je dat je dat soort wildcards kan gebruiken. Je kan waarschijnlijk op die manier de juiste pathnames vinden en dan die verwijderen.

Python code vraag (weergave)

17-02 23:47 vraag 2

Vraag

Hallo,

Voor informatica moet ik een eigen Python script schrijven. Ik heb besloten om een sneeuwpop te maken via Pyscripter.
Mjin code is volgens mij goed, alleen werkt deze niet wanneer ik hem dump in een Swampy mapje.
Ik heb volgens mij goed gedefinieerd, maar wanneer ik het uitvoer dan weergeeft die niks??
Kan iemand helpen? Alvast bedankt.

Mijn code (het moet een sneeuwpop voorstellen):

from TurtleWorld import*
World = TurtleWorld()
bob = Turtle()


def sneeuw():
turtle=Turtle()
turtle.up()
turtle.goto(0,-250)
turtle.down()
turtle.color("black")
turtle.width(width=5)
turtle.fill(1)
turtle.fill(0)
turtle.circle(120)
turtle.hideturtle()

turtle=Turtle()
turtle.up()
turtle.goto(0,-10)
turtle.down()
turtle.color("black")
turtle.width(width=5)
turtle.fill(1)
turtle.fill(0)
turtle.circle(90)
turtle.hideturtle()


turtle=Turtle()
turtle.up()
turtle.goto(0,170)
turtle.down()
turtle.color("black")
turtle.width(width=5)
turtle.fill(1)
turtle.fill(0)
turtle.circle(60)
turtle.hideturtle()

wait_for_user()

[python] Package install

18-01 15:26 vraag 4

Vraag

Beste Tweakers,

Ik heb een python script gemaakt dat werkt op os x.
Nu wil ik deze gebruiken op windows 10 nu moet ik nog enkele package installeren.
Het probleem is wanneer ik het commando pip install ********.
Ook wanneer ik een andere package installeer kom ik altijd op dezelfde fout code terecht.
code:
1
error: command 'C:\\Users\\NAS\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2

Visual C++ heb ik al geÔnstalleerd en het bestand bestaat maar kom altijd op dezelfde fout terecht.
Heb al wat info opgezocht op internet maar kom er niet veel verder mee.

[Python]Programmeren met Python: welke software is benodigd?

13-01 14:38 vraag 14

Vraag

Beste tweakers,

Voor het verwerken van grote hoeveelheden data wil ik mij graag verdiepen in python. Belangrijkste reden hiervoor is dat mijn werkgever al een groot aantal scripts klaar heeft liggen die geschreven zijn in python. Mijn programeerervaring: ik ben redelijk bekend met MATLAB en R, en heb inmiddels een aantal online python-tutorials bekeken.

Nu raden een aantal collega's mij aan om een softwarepakket als python(x,y) of anaconda te installeren. Ik ben benieuwd welke softwarepakketten jullie mij (iemand met weinig ervaring in pyhton) aanraden.

Ook zie ik termen als NumPy en SciPy langskomen. Ik heb wat zitten zoeken en volgens mij zijn dit essentiele tools voor data-analyse in python. Voor zover ik heb begrijp zitten deze ?libraries? standaard in een pakket als python(x,y). Zijn er op dit gebied nog andere libraries/modules waarvan het handig is om het bestaan ervan te weten?

Graag hoor ik van jullie.

Nginx proxy_pass gaat verkeerd met subdirectory

07-01 11:40 vraag 6

Vraag

Ik probeer een door middel van een reverse proxy een webapp benaderbaar te maken met nginx. Dit (python)programma draait in een dockercontainer en is benaderbaar op poort 881. Als ik via ssh een tunnel aanmaak op poort 881 kan ik het programma prima benaderen, tot zo ver werkt dat allemaal goed.

Ik wil dat programma beschikbaar maken op ons subdomein "tools.afdeling.bedrijf.com/app2/" (app1 is al in gebruik en werkt prima)

Hiervoor heb ik in Nginx bij de vhost config dus een nieuwe location aangemaakt:
code:
1
2
3
location /app2 {
            proxy_pass http://127.0.0.1:881/;
        }

Nu kan ik de app benaderen via "tools.afdeling.bedrijf.com/app2/" maar gaat er met de code iets fout, namelijk de javascript en images verwijzen naar "tools.afdeling.bedrijf.com/images" in plaats van "tools.afdeling.bedrijf.com/app2/images"

Ik heb al verschillende dingen geprobeerd met rewrites, slashes achter de map naam en proxy_setheaders geprobeerd maar ik begin haast te denken dat nginx dit gewoon niet kan.

Wellicht heeft iemand de gouden tip, na ruim 2 uur googlen en tientallen verschillende configs werkt het nog steeds niet.

Beste antwoord

quote:
FiXeR.nl schreef op woensdag 06 januari 2016 @ 09:24:
Dit (python)programma draait in een dockercontainer en is benaderbaar op poort 881.
Betekent dat dat die python app als root draait in die docker container? Dat is niet per se een goed idee ;)
quote:
Nu kan ik de app benaderen via "tools.afdeling.bedrijf.com/app2/" maar gaat er met de code iets fout, namelijk de javascript en images verwijzen naar "tools.afdeling.bedrijf.com/images" in plaats van "tools.afdeling.bedrijf.com/app2/images"
Ja, als die webapp absolute paden gebruikt (wat heel gebruikelijk is) voor dat soort dingen dan werkt dat niet;

Een makkelijke oplossing is om een subdomein te gebruiken voor de reverse proxy, zodat die app ook geproxied gewoon in de root van dat domein draait. "app2.tools.afdeling.bedrijf.com" bijvoorbeeld.

Een andere mogelijkheid is om te zorgen dat de applicatie (in docker) zelf ook onder /app2/ werkt. Dus dat je de app rechtstreeks op de docker container ook benadert met docker:881/app2/ . Dan verwijst de app uit zichzelf naar /app2/images/blabla waardoor dit samen werkt met de proxy (mits juist ingesteld, zie Blokker_1999's posts).
quote:
Dat kan echt alleen maar tot hoofdpijn leiden.

Stel, je subst /images/ naar /app2/images/. Als iemand dan een linkje naar google.com/images/bla.jpg opneemt in een comment in die app, dan wordt die link verklooid. Als de app geupdate wordt om ook /images2/ of /scripts/ of /styles/ of wat dan ook te gebruiken, dan werkt dat niet (en voordat je er dan weer achter bent waarom...). Als je / gaat substen dan ontploft dat zodra een slash in een niet-URL context gebruikt wordt (deling in JS bv). Etc, etc.

Serieus, doe het niet.
quote:
Maar ik zou toch aanraden de configuratie van het Python programma even aan te passen, mits die goed gebouwd is kan je de url zo veranderen.
Dat is ook een mogelijkheid. Je verliest dan wel de mogelijkheid de applicatie rechtstreeks te gebruiken (op blabla:881). Al zou je dat kunnen oplossen met een extra reverse proxy in de docker container.
quote:
Blokker_1999 schreef op woensdag 06 januari 2016 @ 12:24:
Ik moet u toch meedelen dat het hier perfect werkt.
Alleen als de app relatieve paden gebruikt, of ook geroot is in /app2/. Beiden zijn volgensmij niet het geval bij de TS ;)

[Python] Websocket server ontvangt data niet correct

13-11-2015 discussie 9
Vandaag en gisteren ben ik in Python aan het prutsen geweest om een simpele server te schrijven welke communicatie mogelijk moet maken tussen webpagina's. Nouja, om precies te zijn moet hij iPads laten communiceren welke mbv Phonegab geschreven worden.

Nu loop ik tegen 2 problemen aan, de Safari browser op de iPad houdt de connectie niet in stand, hij maakt verbinding, ik stuur een (volgens mij) correcte handshake terug en Safari disconnect vervolgens. :(

De debugconsole van safari maakt verder geen error over dat de handshake verkeerd is dus het lijkt mij dat het correct is wat ik doe. Hieronder de functie die de handshake genereerd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
        def create_handshake_resp( self, handshake):
                final_line = ""
                lines = handshake.splitlines()
                for line in lines:
                        parts = line.partition(": ")
                        if parts[0] == "Sec-WebSocket-Key1":
                                key1 = parts[2]
                        elif parts[0] == "Sec-WebSocket-Key2":
                                key2 = parts[2]
                        elif parts[0] == "Host":
                                host = parts[2]
                        elif parts[0] == "Origin":
                                origin = parts[2]
                                final_line = line

                spaces1 = key1.count(" ")
                spaces2 = key2.count(" ")
                num1 = int("".join([c for c in key1 if c.isdigit()])) / spaces1
                num2 = int("".join([c for c in key2 if c.isdigit()])) / spaces2

                token = hashlib.md5(struct.pack('>II8s', num1, num2, final_line)).digest()

                return (
                "HTTP/1.1 101 WebSocket Protocol Handshake\r\n"
                "Upgrade: WebSocket\r\n"
                "Connection: Upgrade\r\n"
                "Sec-WebSocket-Origin: %s\r\n"
                "Sec-WebSocket-Location: ws://%s/\r\n"
                "\r\n"
                "%s") % (
                origin, host, token)

Chrome heeft WEL de laatste implementatie van websockets dus die gebruikt een andere functie voor de handshake, mischien werkt hij daarom wel in Chrome, maar ik weet dus niet of het aan mijn handshake ligt. Maar in de Chrome implementatie is het hele algoritme wat ik heb nog maar slechts 2 regels...

Het 2e probleem wat ik heb is dat de data niet correct aankomt. De headers tijdens de handshake zijn wel in echte tekst, maar zodra de verbinding tot stand is gebracht (nu in Chrome want die disconnect niet) dan ziet de data er zo uit:

� �|DE]

Tjah, wat moet ik hier dan mee. :') Allemaal rare tekens, alsof hij binaire data ontvangt ofzo?
En helaas lukt het me niet om er achter te komen waar dit probleem dan ligt. Ik heb al geprobeerd om de data te decoden in utf-8 formaat maar helaas mocht dat niet baten.
Dit is de functie die inkomende berichten ophaalt:
code:
1
2
3
4
        def recv_data(self, client, count):
                data = client.recv(count)
                return data
                #return data.decode('utf-8', 'ignore')

Mijn gevoel zegt dat dit gewoon moet werken... :+ Zijn er toevallig meer mensen die wel eens een websocket server hebben gebouwd? Want ik begrijp helemaal niets van dit gedrag van de socketserver. Ik heb voorbeelden bekeken op het internet maar ik lijk het toch niet anders te doen dan andere mensen.

Als ik nou zou weten wat er dan precies fout gaat kan ik het oplossen, ik hoop dat iemand mij daar mee kan helpen. :-)

Mail via Python-script: afzender niet te wijzigen

17-10-2015 discussie 6
Ik heb een mailscriptje in mekaar gezet (Python noob). Uiteindelijk komt het op m'n server te draaien waar het HTML-invoer moet afvangen, maar ik wil eerst zeker zijn dat het Łberhaupt werkt. Voor het gemak laat ik het script mails sturen via mijn Gmail-account naar de bestemmeling.

Op de server draait een website, en Postfix. Mails gericht aan dat domein worden afgevangen door Postfix en (voorlopig, testfase) naar mijn eigen Gmail-adres gestuurd. Eens alles werkt zal het nog steeds naar Gmail worden gestuurd, maar dan van de eigenaar van de site.

Hoe kan ik de afzender 'spoofen'? Het is de bedoeling dat de website-eigenaar het adres te zien krijgt van de persoon die hem gemaild heeft; niet van mijn mailaccount (waar Postfix 'm naar forward). Ik krijg dit met geen stokken aangepast.

Hieronder het script.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python

# Import what we need. MIMEText should do just fine.
import smtplib
from email.mime.text import MIMEText

# Create the container
msg = MIMEText('Dit is een testmail. Waarom stuurt Google hem niet door??')
msg['Subject'] = 'Mail via de website'
msg['From'] = 'adres@randomwebsite'     # Wat ik er ook van maak, het blijft mijn Gmail-adres tonen in de ontvangen mail.
msg['To'] = 'bestemmeling@eigensite'
msg.preamble = 'Mail via de website'

# Authentication
smtpserver = 'smtp.gmail.com'
AUTHREQUIRED = 1
smtpuser = 'xx.xx@gmail.com'
smtppass = 'blabla'

# Send the e-mail
mailServer = smtplib.SMTP('smtp.gmail.com',587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(smtpuser, smtppass)
mailServer.sendmail('adres@randomwebsite','bestemmeling@eigensite',msg.as_string())
mailServer.close()

Python3: IndexError: list index out of range

27-07-2015 discussie 10
Ik heb een python script gemaakt om de gegevens uit een csv bestand te verwerken:
Python: aanmaningen
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
__author__ = 'Bart'

import csv

f = open('H:/aanmaningen.chr', 'r')
reader = csv.reader(f, delimiter=';')


def read_cell(x, y):
    y_count = 0
    for n in reader:
        if y_count == y:
            cell = n[x]
            print(cell + "  (cell)")
            return cell
        y_count += 1


def read():
    for i, row in enumerate(reader):
        i11 = int(i) + 11
        i4 = int(i) - 4
        i3 = int(i) - 3
        i2 = int(i) - 2
        iplus1 = int(i) + 1
        imin1 = int(i) - 1
        if len(row) == 82:
            if read_cell(72, i) == 'Totaal' and read_cell(74, i) != read_cell(74, i11):
                ernst = read_cell(3, i)
                debnr = read_cell(28, imin1)
                naam = read_cell(0, i4)
                straat = read_cell(0, i2)
                plaats = read_cell(0, imin1)
                kvk = read_cell(46, iplus1)
                iban = read_cell(73, iplus1)
                bic = read_cell(67, iplus1)
                print(straat)
            else:
                print('else')
    return


def write(ernst, vve, adminnr, debnr, naam, straat, plaats, totaal, kvk, iban, bic):
    return

read()

f.close()

maar ik krijg de volgende error:

C:\Python34\python.exe C:/Users/Bart/PycharmProjects/Aanmaningen/aanmaningen.py
Traceback (most recent call last):
  File "C:/Users/Bart/PycharmProjects/Aanmaningen/aanmaningen.py", line 45, in <module>
    read()
  File "C:/Users/Bart/PycharmProjects/Aanmaningen/aanmaningen.py", line 31, in read
    straat = read_cell(0, i2)
  File "C:/Users/Bart/PycharmProjects/Aanmaningen/aanmaningen.py", line 13, in read_cell
    cell = n[x]
IndexError: list index out of range

Process finished with exit code 1


En ik heb geen idee wat er aan de hand is... 8)7

[Python] Waarde vinden in nested list

22-07-2015 discussie 14
Ik ben bezig met Python te leren en loop tegen iets aan wat ik niet goed kan oplossen en heb het gevoel dat ik veel te moeilijk denk. Ik heb een nested list:
code:
1
l = [[1, "Frits", 3], [2, "Dirk", 6], [3, "Jan", 30]]

Nu wil ik een nieuw element aan deze list toevoegen, maar alleen indien de naam nog niet voorkomt in de list. Zoals je ziet staat de naam op iedere 2e positie van ieder element. Stel dat de list geen nested list was maar gewoon een simpele list:
code:
1
l = ["Frits", "Dirk", "Jan"]

Kan ik simpelweg het volgende doen:
code:
1
2
3
new_name = "Peter"
if new_name not in l:
    l.append(new_name)

Ik heb nu het volgende wat wel werkt, maar ik denk dat dit "pythonesker" kan:
code:
1
2
3
4
5
6
7
new_name = "Peter"
exists = 0
for i, name, x in l:
    if name == new_name:
        exists += 1
if exists == 0:
    l.append([2, new_name, 7])

Kan dit korter of handiger? Ik unpack nu alles, maar ik weet al zeker dat ik alleen op de 2e positie van ieder element hoef te zoeken.

Cursus Python en Visual Basic for Excel

08-06-2015 discussie 5
Als chemisch technoloog wil ik mij gaan onderscheiden in mijn vakgebied door een programmeer taal te leren. De twee talen die ik mijzelf eigen wil gaan maken zijn Python en VBA (Excel). Python omdat het een relatief makkelijke taal is en deze een aantal open source pakketten beschikbaar heeft zoal numPy die erg bruikbaar zijn. Een cursus om de syntax te leren heb ik gevolgd via CodeCademy en hoop binnenkort te beginnen aan een cursus van MIT via Edx om het wat beter onder de knie te krijgen.
Visual Basic wil ik gaan leren omdat Excel nu eenmaal een gemeengoed is in deze industrie. Er bestaan ontzettend veel Excel sheets vol formules en macro's en het is handig als ik deze kan lezen/aanpassen/optimaliseren.

Ondanks dat ik de syntax van Python begrijp en ook wel wat kan schrijven in VBA/Excel wil ik mijzelf hierin ontwikkelen. Daarom ben ik benieuwd of er cursussen/opleidingen zijn die ik kan volgen, het liefst met een praktische toepassing. Het uiteindelijke doel is om simulaties te maken over bijvoorbeeld een reactie, het aanmaken van databases en hier allerlei gegevens in wegschrijven/opzoeken en de interactie met Excel sheets(bijvoorbeeld een berekening uitvoeren via Python en deze wegschrijven in Excel.)

Zelfstudie boeken is niet direct waar ik naar op zoek ben maar een goede aanbeveling is natuurlijk welkom.

Verwachting daling in temperatuur berekenen (regressie?)

02-06-2015 discussie 11
Ik wil graag de verwachtte daling in temperatuur (per minuut) berekenen.
Dit probeer ik te doen met Python.

Ik meet elke minuut de huidige temperatuur, en dit sla ik op in een list. Ik houd op dit moment een periode van het laatste uur bij.

Aan de hand daarvan wil ik graag berekenen wat de verwachtte temperatuursdaling/stijging per minuut voor de komende tijd is.

Hoe kan ik dit het beste doen. Via lineaire regressie?

Python: hoog CPU verbruik Scrapy

21-05-2015 discussie 0
Onze server waar alle spiders op draaien, verbruikt behoorlijk wat CPU zodra de spiders uitgevoerd worden: 50% minimaal en vaak tegen de 100%.

Ik heb al diverse methodes geprobeerd om het CPU verbruik omlaag te brengen:
- sleep(0.1) toevoegen aan diverse Pipelines
- Pipelines uitschakelen
- gebruik maken van job persistance (mbv de JOBDIR parameter een map toewijzen waar tijdelijke data kan worden opgeslagen in plaats van deze te bewaren in het geheugen).
- max aantal taken per CPU omlaag brengen mbv hieronder getoonde settings.

scrapy.cfg:
Python:
1
2
3
[scrapyd]    
max_proc = 0    
max_proc_per_cpu = 2

Ze hebben geen van allen geholpen. Dit zijn de stats zodra ik een spider uitvoer:
Bash Session:
1
2
3
4
5
6
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 3221 scrapy    20   0  836724  75568   8432 R 40.5  7.4   1:04.31 python
 3231 scrapy    20   0  836724  75568   8432 S  1.0  7.4   0:01.40 python
 3234 scrapy    20   0  836724  75568   8432 S  1.0  7.4   0:01.42 python
 3235 scrapy    20   0  836724  75568   8432 S  1.0  7.4   0:01.44 python
 3228 scrapy    20   0  836724  75568   8432 S  0.7  7.4   0:01.43 python

Het is dus wel echt scrapy die het CPU opslurpt. Maar zelfs in de trackref functionaliteit van scrapy (http://doc.scrapy.org/en/...emory-leaks-with-trackref) zie ik geen vreemde dingen. Het aantal objecten loopt namelijk steeds weer wat terug, en niet aanzienlijk hoog op.

Iemand nog ideeŽn? Het valt me wel op wanneer ik sleep(0.1) toevoeg aan de Pipelines, ik geen korte pieken meer zie in de CPU grafieken. In plaats daarvan blijft het CPU verbruik op 50% hangen voor een aantal minuten. Omdat het proces nu natuurlijk langer duurt, maar het lijkt er dus op dat er toch iets niet helemaal lekker zit.

Zodra er meerdere spiders tegelijkertijd draaien, wil het CPU verbruik weleens oplopen tot 70%, of zelfs 100% cpu.

EDIT:
Met de variable `CONCURRENT_REQUESTS = 1` blijft die netjes op max 40%, als ik ťťn spider uitvoer. Maar lager dan 40% CPU verbruik is me nog niet gelukt. Ik heb geprobeerd elke extension/pipeline/middleware uit te schakelen, maar dat hielp ook niets. Ik heb dit probleem even bij de makers gedropt, wellicht dat zij nog goede ideeŽn hebben.

[Python] Framework en Database op Raspberry Pi

17-05-2015 discussie 16
Ik wil graag een python applicatie laten draaien op een RPi. Hiervoor heb ik onder anderen een database nodig.

Mijn eigen ervaring met SQLite3 is goed, maar ik weet niet in hoeverre het geschikt is voor de applicatie zelf.

Nu heb ik wel wat onderzocht, maar niet direct ervaringen kunnen vinden van hoe het een en ander zich gedraagt qua performance.

Dus, hierbij mijn vraag, wat is een geschikt lichtgewicht framework dat ik kan gebruiken op de RPi? Django lijkt mij overkill, volgens mij moet het kleiner kunnen (Misschien zelfs zonder framework?), maar ik heb er domweg de kennis niet voor en de reviews en adviezen op o.a. StackOvervlow etc. zijn nogal wisselend.
Ik zat te denken aan Flask, maar daar heb ik dan weer 0 ervaring mee.

Daarnaast twijfel ik tussen SQLite3 en PostgreSQL. Postgres is natuurlijk technisch gewoon beter, maar een stuk zwaarder op het systeem. Helemaal op een RPi.

EC2: Een python script mbv Amazon autoscale

10-05-2015 discussie 0
Heeft iemand ervaring met autoscale op Amazon? Ik wil een python script draaien op Amazon. Dit python script verwerkt de documenten uit een Amazon queue (SQS). Het python script wat uitgevoerd moet worden, dient eerst een classificeerder te downloaden van een aparte server (dit is een .pickle bestand). Deze classificeerder kan vervolgens gebruikt worden om de documenten te verwerken uit het SQS bestand. Deze classificeerder wordt meerdere keren per dag bijgewerkt.
Afhankelijk van de hoeveelheid documenten in de SQS wil ik de EC2 opschalen, of juist naar beneden, of misschien wel helemaal uitschakelen (zodra de SQS leeg is).

Ik heb gevonden hoe ik met de boto library een instance kan starten en een script mee kan sturen dmv de user_data parameter (http://boto.readthedocs.org/en/latest/ec2_tut.html). Maar autoscale lijkt anders te werken: http://boto.readthedocs.org/en/latest/autoscale_tut.html.
Ik kan niet echt duidelijkheid vinden over hoe zo'n autoscale groep nou daadwerkelijk werkt.

Dien ik instances toe te voegen aan de autoscale group die allen het python script runnen op het moment dat deze wordt opgestart, en worden deze instances ingeschakeld op het moment dat ik de autoscale groep opschaal?

EDIT:
Al gefixt. Met behulp van een alarm houdt Amazon in de gate of er extra instances opgestart moeten worden. S3 gebruik ik voor het opslaan van de classificeerder en de AMI (welke door iedere instance gebruikt wordt) richt ik zo in dat die bij opstarten eerst het bestand downloadt en vervolgens begint met classificeren.

[Python] Realtime informatie uit Google Chrome?

10-05-2015 discussie 10
Beste Tweakers,

Na veel zoeken kom ik er niet uit hoe ik dit handig kan aanpakken. De casus is als volgt: ik wil een taalgebruikfilter voor Netflix bouwen. Ik heb al zoiets gemaakt wat werkt voor VLC in Python. Dit door uit de ingebouwde webserver van VLC de huidige playback time uit te lezen, en doordat ik met de ondertiteling weet wat er gezegd wordt het geluid op het juiste moment even te muten.

Nu wil ik hetzelfde doen voor Netflix, maar dan moet ik wel de huidige afspeeltijd hebben. Netflix in de browser is HTML5, dus het lijkt me dat het mogelijk moet zijn om het HTML-element met de tijd te extraheren. Alleen zijn alle oplossingen om dit programmatisch te doen erop gericht om dit op de achtergrond te doen met bv een HTTP-request, en is hier juist essentieel dat het element wordt uitgelezen uit de huidige browserwindow. Een GUI-automatiseringstaal is niet geschikt omdat de tijd niet steeds zichtbaar in beeld is (maar wel als HTML element aanwezig). Het is al mogelijk met een extensie om de ondertiteling te vervangen door je eigen bestand, dus dat probleem is al opgelost.

Waar ik aan dacht was om een Chrome extensie te maken die de informatie uitleest en vervolgens als webserver 'broadcast', die ik dan door mijn op de achtergrond draaiende Python scriptje kan laten uitlezen. Maar da's allemaal erg omslachtig en lastig. Wat zou een goede manier zijn om dit wel te laten werken?

Alvast bedankt voor de hulp! :)

van webinterface naar raspberry en verder

30-04-2015 discussie 3
Beste Tweakers,

Voor een project wil ik een via 1 webinterface, waar ik een form heb met wat inputs, een paar arduino aanspreken. De communicatie tussen de arduino en de server is het probleem niet.
Het probleem is dat de web interface een reeks get commandos ontvangt van de webinterface. Deze get commandos moeten dan verwerkt worden door een programma/script, die vervolgens de arduino's aanspreekt.

Ik had eigenlijk wel verwacht dat half het internet vol stond met soort gelijke projecten, maar dat val vies tegen.

Ik zou op zich zelf wel een stukje c code kunnen schrijven die als het ware apache vervangt, die afhankelijk wat voor get commando er binnen komt, of een html pagina naar de client stuurt, of de arduino's aanspreekt.
Echt lijkt het mij verre van ideaal, om in hardcore c een webinterface te gaan schrijven.

Hebben jullie misschien suggesties hoe ik dit zou kunnen aanpakken?

Met vriendelijke groet,

Flammert

Ps: er word gewoon gebruik gemaakt van linux (natuurlijk)

[python] requests webpagina met symbolen in http

26-02-2015 discussie 6
Dag iedereen,

Ik probeer informatie op te halen via requests van deze link:
http://stockscreener.uk.r...&OriginalCurrency=GBP
Het leek mij heel eenvoudig maar toch lijk ik er maar niet in te slagen.

Het is een link die gecreeerd wordt door een webformulier.
Ik kan die link zonder problemen plakken in firefox en krijg de gewenste pagina, met python lukt mij dit niet.

Ik heb momenteel dit:


import requests
from bs4 import BeautifulSoup

page=requests.post('http://http://stockscreener.uk.reuters.com/Stock/UK/ResultsTable?returnChoice=&page=2&sortBy=RCCMultexCompanyName&sortDir=A&quickscreen=gaarp&criteria=%5B%22StockUniverse%22%2C%22PriceEarnings%22%2C%22EPSGrowthRate%22%2C%22Region%22%2C%22SectorAndIndustry%22%2C%22PEGRatio%22%5D&Currency=GBP&PEGRatio={%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}&SectorAndIndustry={%22industries%22%3A%5B%5D}&Region={%22countries%22%3A%5B%5D}&EPSGrowthRate={%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}&PriceEarnings={%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}&StockUniverse={%22button_inputs%22%3A%5B%22LIKE|United%2BKingdom%22%2C%22NOTLIKE|United%2BKingdom%22%5D}&criteriaSession={%22StockUniverse%22%3A{%22button_inputs%22%3A%5B%22LIKE|United%2BKingdom%22%2C%22NOTLIKE|United%2BKingdom%22%5D}%2C%22PriceEarnings%22%3A{%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}%2C%22EPSGrowthRate%22%3A{%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}%2C%22Region%22%3A{%22countries%22%3A%5B%5D}%2C%22SectorAndIndustry%22%3A{%22industries%22%3A%5B%5D}%2C%22PEGRatio%22%3A{%22view%22%3A%22range%22%2C%22button_inputs%22%3A%5B%5D%2C%22range_inputs%22%3A%22%22}%2C%22Currency%22%3A%22GBP%22}&OriginalCurrency=GBP')

soup=BeautifulSoup(page.text)
print(soup)


Mijn programma doet alles correct (geen foutmeldingen) maar ik kom op een verkeerde pagina terecht (website die zegt dat de pagina niet kon gevonden worden).

Ik heb gemerkt dat er een verschil is tussen de link die ik zie in firefox en de link die ik uiteindelijk plak in python. Blijkbaar worden een aantal karakters vervangen (zoals bv: [ ] " ).
Ik heb deze ook al proberen te vervangen en zo de html door te sturen maar dat lijkt ook niet te helpen.


import requests
from bs4 import BeautifulSoup

page=requests.post('http://stockscreener.uk.reuters.com/Stock/UK/ResultsTable?returnChoice=&page=100&sortBy=RCCMultexCompanyName&sortDir=A&quickscreen=gaarp&criteria=["StockUniverse"%2C"PriceEarnings"%2C"EPSGrowthRate"%2C"Region"%2C"SectorAndIndustry"%2C"PEGRatio"]&Currency=GBP&PEGRatio={"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}&SectorAndIndustry={"industries"%3A[]}&Region={"countries"%3A[]}&EPSGrowthRate={"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}&PriceEarnings={"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}&StockUniverse={"button_inputs"%3A["LIKE|United%2BKingdom"%2C"NOTLIKE|United%2BKingdom"]}&criteriaSession={"StockUniverse"%3A{"button_inputs"%3A["LIKE|United%2BKingdom"%2C"NOTLIKE|United%2BKingdom"]}%2C"PriceEarnings"%3A{"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}%2C"EPSGrowthRate"%3A{"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}%2C"Region"%3A{"countries"%3A[]}%2C"SectorAndIndustry"%3A{"industries"%3A[]}%2C"PEGRatio"%3A{"view"%3A"range"%2C"button_inputs"%3A[]%2C"range_inputs"%3A""}%2C"Currency"%3A"GBP"}&OriginalCurrency=GBP')

soup=BeautifulSoup(page.text)
print(soup)





Iemand een idee?

[python][requests] Formulier invullen en resultaat ontvangen

10-02-2015 discussie 2
Dag iedereen,

Ik ben momenteel python aan het leren maar zit momenteel volledig vast.

Ik tracht een formulier in te vullen en de resultaten naar mijn computer te schrijven (link)

Ik slaag er wel in om de gegevens door te sturen maar niet om de respons te ontvangen?
Ik krijg nu als resultaat enkel het ingevulde formulier.

Iemand een idee waar mijn fout ligt?

Dit is mijn voorlopige code:

import requests
from bs4 import BeautifulSoup
with requests.Session() as c:

page=c.post('http://stockscreener.uk.reuters.com/Stock/UK/Index?quickscreen=gaarp', data=dict(quickscreen='gaarp',criteria='["StockUniverse","PriceEarnings","EPSGrowthRate","Region","SectorAndIndustry","PEGRatio"]',Currency='GBP',PEGRatio='{"view":"range","button_inputs":[],"range_inputs":"LSS|1"}',SectorAndIndustry='{"industries":[]}',Region='{"countries":["GB"]}',EPSGrowthRate='{"view":"range","button_inputs":[],"range_inputs":"GTR|15"}',PriceEarnings='{"view":"range","button_inputs":[],"range_inputs":"GEQ|0|LEQ|15"}',StockUniverse='{"button_inputs":["LIKE|United+Kingdom","NOTLIKE|United+Kingdom"]}',criteriaSession='{"StockUniverse":{"button_inputs":["LIKE|United+Kingdom","NOTLIKE|United+Kingdom"]},"PriceEarnings":{"view":"range","button_inputs":[],"range_inputs":"GEQ|0|LEQ|15"},"EPSGrowthRate":{"view":"range","button_inputs":[],"range_inputs":"GTR|15"},"Region":{"countries":["GB"]},"SectorAndIndustry":{"industries":[]},"PEGRatio":{"view":"range","button_inputs":[],"range_inputs":"LSS|1"},"Currency":"GBP"}'))

soup=BeautifulSoup(page.text)
print(soup)

Hoe 5 bytes in een leesbare string zetten?

22-01-2015 discussie 6
Dag mede-Tweakers,

Voor een projectje heb ik een vraag. Ik heb de volgende RFID reader (http://www.produktinfo.co...FID_ANTENNE_C_CONTROL.pdf) aangesloten op mijn raspberrys seriele pinnetje. Nu wil ik in python de 5-byte string die ik binnenkrijg omzetten in een door mensen leesbare string (die ik vervolgens wil gaan vergelijken met een mysql database maar dat is voor later)

Iemand ervaring of tips?

Mijn eerste programmeertaal, Python versus Go

12-01-2015 discussie 29
Beste Tweakers,

Allereerst, ik weet dat vragen als “welke taal moet ik leren” niet op prijs worden gesteld. Ik ben dan ook niet op zoek naar 42, ik ben op zoek naar ervaring en wat inzicht om mijn keuze meer grond te geven.

Mijn achtergrond is html/css welke ik goed beheers, ik wilde altijd met php aan de slag maar ik kan er niet mee overweg. Ik vind php lelijk, onhandig, obscuur. JavaScript aan de andere kant vind ik geweldig, helaas ben ik er veel te laat mee begonnen maar het voelt meer als een handschoen. Het is bovenal een gevoelskwestie en php/JS is voor mij het verschil tussen kill me now en awwww yeah.

Als server-side taal trekt JS me dan weer niet zo, te veel package-management, te veel dependancies. Ik ben me al een tijdje aan het oriŽnteren door opties te bekijken opiniestukken te lezen, code in te zien en mezelf af te vragen wat ik zoek in een taal.

Ik begin met wat ik zoek
- Mooie syntax
- Performant
- Dwingt tot zeker hoogte nette code af

Waar ik op uit ben gekomen zijn eigenlijk 2 totaal verschillende paden. Het gaat om Python versus Go lang. De verschillen zijn aanzienlijk:

Python
- Gevestigd
- GeÔnterpreteerd
- Uitgebreid
- Ongeveer even snel als php

Go lang
- Relatief nieuw
- Gecompileerd
- Minimalistisch
- Snel

Wat ze beide gemeen hebben is dat ze volgens een bepaalde (stricte) filosofie werken, dit vind ik prettig omdat het zorgt voor consistentie. Wat ze ook gemeen hebben is dat ik de taal persoonlijk prettig vind om te lezen, een stuk schoner dan php, meer zoals ik JS ervaar. Ze kunnen ook beide toegepast worden in het applicatie-domein.

In principe lijken beide me een prettig pad om te betreden, ik neig naar Python vanwege de grotere community, meer documentatie voor obscure use-cases, ongetwijfeld meer werk-aanbod. Go lang spreekt me aan vanwege de frisse aanpak, een kleine set tools die (vanwege de compilatie) erg snel is, het is gemaakt voor meerdere threads en in die zin meer een node.js alternatief. Ik weet dat het snelheidsvoordeel van Go in deze fase een ver van mijn bed show is en dat er veel meer bij komt kijken dan de runtime. Toch heb ik altijd een bias naar snel, sneller, snelst.

Zijn er mensen die voor dezelfde keus hebben gestaan, of Łberhaupt mensen met ervaring in Go? Deze vraag is ook deels omdat ik in GoT vrijwel niks kan vinden over Go. Dit is in ieder geval hoe ik Python en Go beide als een optie zie.

Aansturing seriele poort vanuit python

29-10-2014 discussie 0
Hallo,

Ik ben bezig met een python programmaatje die een seriele poort aan kan sturen. Ik gebruik hiervoor een Raspberry Pi i.c.m. een Arduino. Op de Raspberry heb ik een webserver draaien die het python scriptje aanroept. Zo kan ik dingen in- en uitschakelen via internet. Op zich werkt het perfect, alleen ik moet de seriele monitor van de Arduino IDE open hebben staan wil het functioneren. Het lijkt erop dat het python script de seriele poort niet opent ofzo, maar ik weet niet waarom. Kan natuurlijk ook iets anders zijn. Hieronder de Python code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import serial
import time
import argparse
import sys


parser = argparse.ArgumentParser()
parser.add_argument("run", help ="", type = str)
args = parser.parse_args()

DEVICE = '/dev/ttyACM0'
BAUD = 9600
ser = serial.Serial(DEVICE, BAUD)


while 1 :
    ser.write(args.run) 
    if (ser.read() == "y") :
        break
    time.sleep(0.1)

Kan iemand mij misschien vertellen wat hier fout gaat?

icloud api Python

20-10-2014 discussie 1
Beste,

Weet iemand een goede icloud api voor python pypi te liggen?
Heb er 2 getest maar werken niet goed.

Icloud drive is nieuw dus het kan zijn dat ik geen resultaat nog krijg.

Mvg,
Stefan

[python] stiekem toch pointers? (bug, kom er niet uit)

07-09-2014 discussie 11
Beste mensen,

Ik zit met een issue, want ik ben tot de conclusie gekomen dat ik er geen kont meer van snap, hoewel ik toch een tijdje al weer zit te programmeren in Python. En aangezien ik het idee heb dat ik iets heel erg basis fout doe, is dat gevaarlijk voor de rest van mijn brouwsels dus heb ik hulp nodig.

Ik heb een eigen 'class' waarin ik simuleer dat ik een matrix heb. Ofwel het bevat gewoon een lijst met waaden en als cols en rows 8 is en ik een lijst van 64 waarden heb, kan ik dan mooi waarde (2,3) bijvoorbeeld opvragen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Mat:
    
    def __init__(self, rows, columns):
        #initialize a 'matrix'
        if rows <=0 or columns <= 0:
            raise Exception("Cannot use 0 or negative as value for rows/columns")
        self.rows=rows
        self.columns=columns
        self.data=[]

    def getpx(self,row,column):
        #return a certain pixel
        if len(self.data) == 0:
            raise Exception("There is no data in the current Matrix")
        if row <=0 or column <= 0:
            raise Exception("Cannot use 0 or negative as value for rows/columns")           
        return self.data[(row-1)*self.columns+(column-1)]

Nu doe ik het volgende (versimpeld), om het gemiddelde van de laagste 3 waarden te verkrijgen
code:
1
2
3
4
testmatrix = Mat(8,8,lijstvan64waarden) #initialiseren
datalijst = testmatrix.data
sortlijst=datalijst.sort()
avgmindata=sum(sortlijst[0:3])/3 #laagste 3 waarden optellen en delen door 3

Dat gaat allemaal prima. Denk je. Alleen nu blijkt dat de data in testmatrix ook gewoon wordt gesorteerd. Het lijkt dus alsof ipv de data naar datalijst wordt gekopieerd er in werkelijkheid een referentie wordt gekopieerd.

Ook als ik het via een omslachtige, gare manier doe gaat het fout
code:
1
2
3
4
5
sortmat=Mat(8,8)
gridDataAvgMat.copyData(sortmat)
sortlijst=sortmat.data
sortlijst.sort()
avgmindata=sum(sortlijst[0:3])/3

idee was ik doe het wel via een andere 'matrix', maar copydata doet in feite:
code:
1
2
3
4
5
6
7
8
9
def copyData(self,targetmatrix):
        #Function to copy all data from one Mat to another
        if not isinstance(targetmatrix, Mat):
            raise Exception("Trying to copy data from Mat object to non-Mat object")
        if targetmatrix.rows != self.rows or targetmatrix.columns != self.columns:
            raise Exception("Trying to copy data from Mat object to another Mat object while columns / rows do not match!")
        if len(self.data) == 0:
            raise Exception("There is no data in the current Matrix to copy")
        targetmatrix.data=self.data

targetmatrix.data = self.data geeft dus wellicht ook gewoon een referentie door?

Los van het feit dat er allerlei andere handige dingen gebruikt kunnen worden voor het achterliggende doel, hoe voorkom ik dat de rest meesorteert?

Kan Python voor windows 8 niet installeren

03-09-2014 discussie 4
Wanneer ik de setup van python 2.7.6 draai dan krijg ik wanneer hij de componenten gaat registreren de melding "sleutel is niet geldig voor gebruik in de opgegeven status".

Ik kan de setup niet starten als administrator omdat die optie bij rechtsklikken niet verschijnt, bij andere setup bestanden overigens wel.

Op het web kan ik in relatie met python niets vinden hierover, wel wanneer het over spotnet gaat.

Een setup log heb ik beschikbaar.
Resultaten per pagina: 25 | 50 | 100


Samsung Galaxy S7 edge Athom Homey Apple iPhone SE Raspberry Pi 3 Apple iPad Pro Wi-Fi (2016) HTC 10 Hitman (2016) LG G5

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True