直接在 FTP 服务器上创建 CSV 文件
Create a CSV file directly on an FTP server
我使用 Python csv
库创建了一个 CSV 文件。
创建完所有 CSV 文件后,我的第二个任务是将它们放在 FTP 服务器上。
为此,我在 Linux 计算机上的 /tmp
文件夹中生成了所有文件,然后打开 FTP 连接并将它们全部上传到远程服务器.
我的问题是:是否可以在内存缓冲区中创建 CSV 文件并将它们直接放在我的 FTP 服务器上?
是的,您可以使用 StringIO(或更好的 cStringIO)在内存中生成文件。
你可以尝试这样的事情:
import csv
from ftplib import FTP
from cStringIO import StringIO
...
ftp = FTP(host, user, passwd)
ftp.login()
output = StringIO()
data = csv.writer(output)
data.writerow(["data"] * 5)
output.seek(0)
ftp.storbinary("STOR data.txt", output)
...
请注意,这不是完全可行的代码,您可能需要根据您的 FTP 配置进行一些更改。例如,我必须添加 ftp.set_pasv(False) 才能使其适用于我的测试 FTP.
我使用 Python csv
库创建了一个 CSV 文件。
创建完所有 CSV 文件后,我的第二个任务是将它们放在 FTP 服务器上。
为此,我在 Linux 计算机上的 /tmp
文件夹中生成了所有文件,然后打开 FTP 连接并将它们全部上传到远程服务器.
我的问题是:是否可以在内存缓冲区中创建 CSV 文件并将它们直接放在我的 FTP 服务器上?
是的,您可以使用 StringIO(或更好的 cStringIO)在内存中生成文件。 你可以尝试这样的事情:
import csv
from ftplib import FTP
from cStringIO import StringIO
...
ftp = FTP(host, user, passwd)
ftp.login()
output = StringIO()
data = csv.writer(output)
data.writerow(["data"] * 5)
output.seek(0)
ftp.storbinary("STOR data.txt", output)
...
请注意,这不是完全可行的代码,您可能需要根据您的 FTP 配置进行一些更改。例如,我必须添加 ftp.set_pasv(False) 才能使其适用于我的测试 FTP.