【发布时间】:2023-03-14 03:35:01
【问题描述】:
我正在尝试使用 pyreadstat 直接从 sftp 服务器读取 sasdataset,因为我无法下载数据,我正在尝试这种方法:
import pysftp
class My_Connection(pysftp.Connection):
def __init__(self, *args, **kwargs):
try:
if kwargs.get('cnopts') is not None:
return
kwargs['cnopts'] = pysftp.CnOpts()
kwargs['cnopts'].hostkeys = None
except pysftp.HostKeysException as e:
self._init_error = True
print('Warning Failed to load Host-keys')
else:
self._init_error = False
self._sftp_live = False
self._transport = None
super().__init__(*args, **kwargs)
def __del__(self):
if not self._init_error:
self.close()
with My_Connection(SFTP_HOST,username=SFTP_USER,password=SFTP_PASSWORD,) as conn:
conn.cwd('/sas/sasdata/sasdev/sasdatasets')
with open("/sas/sasdata/sasdev/sasdatasets/statfile.sas7bdat", 'r') as fp:
df = pyreadstat.read_sas7bdat(fp)
当文件很大时,谁能帮助我如何在服务器中直接读取 sasdataset?
【问题讨论】:
-
你能用 SASpy 代替吗? sassoftware.github.io/saspy
-
它是 SFTP 服务器还是 SAS 服务器?这些是非常不同的用例。
-
这是您有权访问(或可以访问)的 SAS 服务器吗?如果是这样,那么 Reeza 建议的 SASPy 或 SWAT(SASPy 用于 9.4,SWAT 用于 Viya)是迄今为止的最佳选择。
-
@Reeza 在我的组织中,我们不在本地运行,主要在远程服务器中,我们如何在本地连接到 saspy,我试图通过 swat 连接它不占用我通常的端口 22使用 htpps url 登录到 sas,但我尝试了另一个端口无法正常工作,您对此有任何想法,请提出建议,非常感谢您对此的想法。
标签: python-3.x dataframe sas data-analysis pysftp