Python 使用pysftp拆分SFTP目录中的文本文件
我试图使用pythonpystp将大小为100mb的文本文件(具有唯一的行)拆分为10个大小相同的文件,但我找不到合适的方法来处理相同的文件 请让我知道如何从SFTP目录读取/拆分文件,并将所有文件放回FTP目录本身Python 使用pysftp拆分SFTP目录中的文本文件,python,sftp,pysftp,Python,Sftp,Pysftp,我试图使用pythonpystp将大小为100mb的文本文件(具有唯一的行)拆分为10个大小相同的文件,但我找不到合适的方法来处理相同的文件 请让我知道如何从SFTP目录读取/拆分文件,并将所有文件放回FTP目录本身 with pysftp.Connection(host=sftphostname, username=sftpusername, port=sftpport, private_key=sftpkeypath) as sftp: with sftp.open(source_f
with pysftp.Connection(host=sftphostname, username=sftpusername, port=sftpport, private_key=sftpkeypath) as sftp:
with sftp.open(source_filedir+source_filename) as file:
for line in file:
<....................Unable to decide logic------------------>
将pysftp.Connection(主机=sftphostname,用户名=sftpusername,端口=sftpport,私钥=sftpkeypath)作为sftp:
使用sftp.open(source\u filedir+source\u filename)作为文件:
对于文件中的行:
我不认为FTP/SFTP比下载文件更聪明。也就是说,您必须获取整个文件,在本地拆分它,然后将新文件放回
对于文本文件拆分逻辑,我认为此线程可能有用:您可能需要的逻辑如下:
csv.reader()
快速扫描文件,用它计算文件中的行数。然后,可以使用它来确定如何将文件拆分为相等数量的行,而不仅仅是按设置的字节数拆分文件
n
行(基于总行数)。使用一个csv.writer()
和另一个io.StringIO()
首先写入标题行,然后将拆分的行写入内存。然后可以使用pysftp
将其上载到服务器上的新文件,而无需访问实际的归档系统
结果是,每个文件也将有一个有效的标题行。感谢Bensha的回复。这里的问题是,我正在尝试在Oracle云基础设施-函数(FaaS)中运行Python代码,这是一个只读环境,我无法将文件从FTP下载到本地环境。我唯一的选择是在运行时从FTP读取后拆分。非常感谢Martin。。。。。是的,这帮助了我,我能够从OCI-FaaS环境(碰巧是只读环境)向SFTP写入数据。我已将此标记为答案