我试图弄清楚如何使用 spss / 宏或 python 块在一个目录中添加所有 excel 或 csv 文件。这些文件将具有相同的变量,但字符串长度可能不同。
我尝试在 spss 流程文件添加中使用宏。
下面的Python代码块将创建一个相关的文件列表,然后逐个导入文件并将每个文件添加到堆栈中。确保更新您的路径和变量名称。如果文本变量的长度不同,请编辑命令以赋予它们足够大的相同长度,以便文本不会在任何文件中被剪切。
BEGIN PROGRAM PYTHON3.
import os
import spss
folder_path = "C:\\Users\\you\\yourpath"
csv_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.csv')]
# Print the list of files
print("Files to be processed:")
for f in csv_files:
print(f)
# Start generating SPSS commands
commands = []
for idx, f in enumerate(csv_files):
cmd = f'''
GET DATA /TYPE=TXT /FILE="{f}"
/DELIMITERS="," /QUALIFIER='"' /ARRANGEMENT=DELIMITED /FIRSTCASE=2
/DATATYPEMIN PERCENTAGE=95.0 /VARIABLES=
var1 AUTO
var2 AUTO
var3 AUTO.
CACHE.
EXECUTE.
'''
if idx == 0:
cmd += f'DATASET NAME mainData WINDOW=FRONT.\n'
else:
cmd += f'DATASET NAME tempData WINDOW=FRONT.\n'
cmd += 'dataset activate mainData.\n'
cmd += 'ADD FILES /FILE=* /FILE=tempData.\n'
cmd += 'EXECUTE.\n'
cmd += 'DATASET CLOSE tempData.\n'
commands.append(cmd)
# Run the generated SPSS commands
spss.Submit("\n".join(commands))
END PROGRAM.