使用 spss / 使用宏或 python 块在一个目录中添加所有 excel 或 csv 文件

问题描述 投票:0回答:1

我试图弄清楚如何使用 spss / 宏或 python 块在一个目录中添加所有 excel 或 csv 文件。这些文件将具有相同的变量,但字符串长度可能不同。

我尝试在 spss 流程文件添加中使用宏。

spss
1个回答
0
投票

下面的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.
© www.soinside.com 2019 - 2024. All rights reserved.