对于一个计划的stressest,我试图写相同的文件到一个ftp服务器使用一个循环与递增的文件名.它工作正常,但仅适用于第一个文件。所有其他的都被创造出来了,但都是空的。
下面是我的代码:
from ftplib import FTP
from cred import *
# Script for streestest
ftp_conn = FTP()
ftp_conn.connect(host=hostname, port=21)
ftp_conn.login(user=username, passwd=password)
counter = 0
# Testfile must exist!
try:
file = open(file='./testfile', mode='rb')
for i in range(10):
filename = f'testfile{i+1}'
ftp_conn.storbinary(cmd=f'STOR /stresstest/{filename}', fp=file)
print(f'wrote file: {filename}')
counter += 1
except FileNotFoundError:
print('File does not exist!')
ftp_conn.quit()
print(f'Written {counter} files to {ftp_conn.host}')
感谢您!
1条答案
按热度按时间zsohkypk1#
每次上传测试打开关闭文件
你需要对你的代码做两个修正:
STOR
命令)关闭文件testfile
正确的代码是(我已经在我的系统上测试过了):
使用上下文管理器
另一种方法是使用上下文管理器,如以下代码所示:
由上下文管理器自动关闭文件。
这篇文章推荐使用上下文管理器,并以下面的句子开始:
强烈建议使用上下文管理器。作为一个优点,它确保文件总是关闭的,无论...