在Python / SPSS中使用循环打开文件

时间:2014-04-23 14:34:24

标签: python loops for-loop concatenation spss

这是我第一次使用python和spss。我希望在同一目录中循环一些文件,创建一个新变量,然后保存该文件。目前我所拥有的是:

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

我希望这会打开每个文件(school12014.sav,school22014.sav,school32014.sav),然后在每个文件中创建一个名为school的变量,并将每个值标记为school1school2school3,具体取决于文件名

如果您有任何建议/问题,请告诉我。感谢

2 个答案:

答案 0 :(得分:1)

更新:我最终选择了这个:

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.

答案 1 :(得分:1)

请记住\是一个转义引导,因此,例如,\ t将被映射到制表符。在路径文字中使用r(raw),如r" c:\ temp ..."或使用正斜杠。