pythonloopsfor-loopconcatenationspss-files

Opening Files with Loop in Python/SPSS


This is my first time using python with spss. I am hoping to cycle through a handful of files in the same directory, create a new variable, and then save the file. Currently what I have is:

begin program.
import spss, spssaux
schools = ['school1', 'school2', 'school3']
for x in schools:
   spssaux.OpenDataFile("C:\...\" + x + "2014.sav")
   school = x
end program.

I was hoping this would open each file (school12014.sav, school22014.sav, school32014.sav), and then create a variable called school in each file and label every value either school1, school2, or school3, depending on the file name

Let me know if you have any suggestions/questions. Thanks


Solution

  • Update: I ended up going with this:

    begin program.
    import spss, spssaux
    import os
    schoollist = ['brow']
    for x in schoollist:
       school = 'brow'
       school2 = school + '06.sav'
       #opens the file
       filename = os.path.join("Y:\...\Data", school2) #In this instance, Y:\...\Data\brow06.sav
       spssaux.OpenDataFile(filename)
    
       #creates the variable
       cur=spss.Cursor(accessType='w')
       cur.SetVarNameAndType(['name'],[8])
       cur.CommitDictionary()
       for i in range(cur.GetCaseCount()):
          cur.fetchone()
          cur.SetValueChar('name', school)
          cur.CommitCase()
       cur.close()
    
    
       spss.Submit("""save outfile="%s".""" % filename)
    
    end program.