这是我第一次使用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
的变量,并将每个值标记为school1
, school2
或school3
,具体取决于文件名
如果您有任何建议/问题,请告诉我。感谢
答案 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 ..."或使用正斜杠。