1. #1
    Kennaah's Avatar
    Registered
    03/07/08
    Location
    x
    Posts
    8,541
    iTrader
    168 (100%)
    Mentioned
    4 Post(s)
    Reputation
    0/146

    [Python] Userinput als filename

    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.
    3DS Friendscode: 0834-2425-2785
    PSN: gogeta-san
    no votes  

  2. #2
    iterums's Avatar
    Registered
    22/07/03
    Location
    W-Vl.
    Posts
    2,226
    iTrader
    0
    Mentioned
    0 Post(s)
    Zeer onduidelijke vraag, maar iets als
    Code:
    filename = raw_input("Beep boop: ") #input(...) voor Python 3
    with open(filename, "w") as f:
        f.write(...)
    ?
    no votes  

  3. #3
    Kennaah's Avatar
    Registered
    03/07/08
    Location
    x
    Posts
    8,541
    iTrader
    168 (100%)
    Mentioned
    4 Post(s)
    Reputation
    0/146
    Quote Originally Posted by iterums View Post
    This quote is hidden because you are ignoring this member. Show
    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?
    3DS Friendscode: 0834-2425-2785
    PSN: gogeta-san
    no votes  

  4. #4
    YaMo's Avatar
    Registered
    19/02/06
    Location
    -
    Posts
    4,048
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    2/73
    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...
    no votes  

  5. #5
    Kennaah's Avatar
    Registered
    03/07/08
    Location
    x
    Posts
    8,541
    iTrader
    168 (100%)
    Mentioned
    4 Post(s)
    Reputation
    0/146
    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.
    3DS Friendscode: 0834-2425-2785
    PSN: gogeta-san
    no votes  

  6. #6
    YaMo's Avatar
    Registered
    19/02/06
    Location
    -
    Posts
    4,048
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    2/73
    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'
    no votes  

  7. #7
    Kennaah's Avatar
    Registered
    03/07/08
    Location
    x
    Posts
    8,541
    iTrader
    168 (100%)
    Mentioned
    4 Post(s)
    Reputation
    0/146
    Thanks zo werkt het perfect.
    Eigenlijk wel simpele oplossing
    Mja heb nooit iets gedaan met python.
    3DS Friendscode: 0834-2425-2785
    PSN: gogeta-san
    no votes  

  8. #8
    YaMo's Avatar
    Registered
    19/02/06
    Location
    -
    Posts
    4,048
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    2/73
    Quote Originally Posted by Kennaah View Post
    This quote is hidden because you are ignoring this member. Show
    Thanks zo werkt het perfect.
    Eigenlijk wel simpele oplossing
    Mja heb nooit iets gedaan met python.
    En de documentatie van die PsychoPy is ook niet zo fameus, precies.
    no votes  

  9. #9
    Kennaah's Avatar
    Registered
    03/07/08
    Location
    x
    Posts
    8,541
    iTrader
    168 (100%)
    Mentioned
    4 Post(s)
    Reputation
    0/146
    Quote Originally Posted by YaMo View Post
    This quote is hidden because you are ignoring this member. Show
    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.
    3DS Friendscode: 0834-2425-2785
    PSN: gogeta-san
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in