Archief - [Python] Userinput als filename

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Kennaah

Legacy Member
Ik ben nu bezig met de programmeren in Python en zou voor een experiment ieder bestand een andere naam moeten geven.

De participant moet in het begin van het experiment een aantal zaken ingeven en wou deze informatie als filename gebruiken.

Weet iemand hoe dit moet?

Het lukt maar niet bestandname te maken aan de hand van userinput.

iterums

Legacy Member
Zeer onduidelijke vraag, maar iets als
Code:
filename = raw_input("Beep boop: ") #input(...) voor Python 3
with open(filename, "w") as f:
    f.write(...)
?

Kennaah

Legacy Member
iterums zei:
Zeer onduidelijke vraag, maar iets als
Code:
filename = raw_input("Beep boop: ") #input(...) voor Python 3
with open(filename, "w") as f:
    f.write(...)
?
Het experiment begint en de gebruiker geeft input in dialogue box.
Bijvoorbeeld naam: Jef

Dan loopt het experiment en op het einde bewaar ik de data in een Excel bestand.
Ik kan dit wel een generische naam geven zoals data. Maar als mark dit experiment doet zal dit ook data noemen.

Nu wil ik dat de bestanden Jef en mark gaan noemen aan de hand dus van wat de gebruiker ingeeft als naam.

Dus gebruiker : jef moet dan excel bestand jef opleveren en gebruiker mark dan excel bestand mark.

Ik hoop dat dit duidelijker is?

YaMo

Legacy Member
Met open(filename, "w"), zoals in iterums zijn voorbeeld dus...
Wat is het juist dat er niet lukt? Invoer van gebruiker is een string, filename is een string...

Kennaah

Legacy Member
Ik zal even deel van de code posten dat daar mee te maken heeft


Code:
from psychopy import gui

myDlg = gui.dlg (title="exerpiment") #Shows the name of experiment
myDlg.addText ("Participantinfo") 
myDlg.addField ("Name: " ) #parcticipant can enter name
myDlg.addField ("Age: ") #participant can enter age
myDlg.show() #Show dialog and wait for OK or cancel
if myDlg.OK:
      thisInfo = myDlg.data
      print this info
else: 
print 'user cancelled'

dit om de dialogue box te laten verschijnen.

Dan loopt er een staircase en moet de parcticipant antwoorden met pijltjes toetsen al deze informatie word opgeslagen in excel bestand door:
Code:
staircase.saveAsExcel ("data.xlsx")

Ik moet dus het eerste the user information krijgen als naam voor het excel bestand.
Zou niet weten hoe ik dat moet doen.
Heb al op de psychopy wiki gekeken en daar geraak ik ook niet uit.

Ik heb geprobeerd er net
Filename = myDlg.data te doen, maar lukt ook niet.

YaMo

Legacy Member
Probeer eens
Code:
from psychopy import gui

filename = ""

myDlg = gui.dlg (title="exerpiment") #Shows the name of experiment
myDlg.addText ("Participantinfo") 
myDlg.addField ("Name: " ) #parcticipant can enter name
myDlg.addField ("Age: ") #participant can enter age
myDlg.show() #Show dialog and wait for OK or cancel
if myDlg.OK:
      filename = myDlg.data[0] + ".xlsx"
      thisInfo = myDlg.data
      print this info
else: 
print 'user cancelled'

Kennaah

Legacy Member
Thanks zo werkt het perfect.
Eigenlijk wel simpele oplossing :p
Mja heb nooit iets gedaan met python.

YaMo

Legacy Member
Kennaah zei:
Thanks zo werkt het perfect.
Eigenlijk wel simpele oplossing :p
Mja heb nooit iets gedaan met python.

En de documentatie van die PsychoPy is ook niet zo fameus, precies.

Kennaah

Legacy Member
YaMo zei:
En de documentatie van die PsychoPy is ook niet zo fameus, precies.

Ik heb gevonden hoe ge de GUI maakt via psychopy, maar niet hoe ge user input kunt nemen als filename. Door mij limited ervaring waarschijnlijk ook slechte zoektermen gebruikt voor dit probleem.
Uiteindelijk lijkt dat basic python als ik het zo zie.

Thanks voor de hulp.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan