370:利用python读取excel生成SAS程序
- 2026-11-02 06:53:53
370:利用python读取excel生成SAS程序以前生成SAS程序的时候,一般是先在tracker上根据shell上的TFL生成对应的程序名,然后再把这些程序名一个一个复制到文件夹,生成对应的SAS程序,这样做不仅费时费力,还容易出错,尤其是repeat AE table的时候,要是有几十张,然后一个程序对应一张table,光是复制粘贴人都要麻了。 但是现在我们可以用python帮我们实现,只需要提前在tracker上写好程序名就行,这也是提高工作效率的方法之一,更进一步还可以直接根据toc就直接在tracker上生成对应的程序名,但这需要一定的规则,我们暂时不处理这个。 
假设excel文件名叫做tracker,需要读取的列名为PGMNAME,接下来就可以直接生成程序了。 运行之后,不到一秒钟就生成所有的程序 
如果指定某个sheet,只需要修改一下这部分 还有很多可以提高效率的地方,后续看看还有什么地方。

import pandas as pdimport os# 1. 读取Excel文件excel_path = "XXXXXXXXXXXXX\\SDTM\\tracker.xlsx" # 修改为你的Excel文件路径df = pd.read_excel(excel_path)# 2. 指定要读取的列名(根据实际情况修改)column_name = "pgmname" # 修改为你的列名program_names = df[column_name].dropna().tolist()# 3. 指定存放SAS文件的文件夹output_folder = "XXXXXXXXXXXX\\SDTM" # 修改为目标文件夹路径# 4. 创建文件夹(如果不存在)if not os.path.exists(output_folder):os.makedirs(output_folder)print(f"已创建文件夹: {output_folder}")# 5. 批量生成空的.sas文件success_count = 0fail_count = 0for name in program_names:program_name = str(name).strip()# 清理非法字符(可选,防止文件名出错)illegal_chars = '<>:"/\\|?*'for char in illegal_chars:program_name = program_name.replace(char, '_')file_path = os.path.join(output_folder, f"{program_name}.sas")try:# 创建空的.sas文件with open(file_path, 'w', encoding='utf-8'):passprint(f"✓ 已生成: {program_name}.sas")success_count += 1except Exception as e:print(f"✗ 生成失败: {program_name}, 错误: {e}")fail_count += 1# 输出统计print(f"\n完成!成功: {success_count} 个,失败: {fail_count} 个")

excel_path ="XXXXXXXXXXXXX\\SDTM\\tracker.xlsx" sheet_name ="Sheet1"# 修改为你的sheet名称
df = pd.read_excel(excel_path, sheet_name=sheet_name)
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。