Python ftp文本文件传输代码
时间: 2023-05-23 09:05:42 浏览: 100
import ftplib
# 连接FTP服务器
ftp = ftplib.FTP('ftp.server.com')
ftp.login('username', 'password')
# 列出FTP服务器上的文件列表
ftp.dir()
# 将本地文件上传到FTP服务器
file_path = 'local/file/path.txt'
remote_path = '/ftp/server/path.txt'
with open(file_path, 'rb') as f:
ftp.storbinary('STOR ' + remote_path, f)
# 从FTP服务器下载文件到本地
remote_path = '/ftp/server/path.txt'
file_path = 'local/file/path.txt'
with open(file_path, 'wb') as f:
ftp.retrbinary('RETR ' + remote_path, f.write)
# 关闭FTP连接
ftp.quit()
相关问题
python ftp文件管理
### Python FTP 文件管理教程
#### 连接至FTP服务器并导航目录
为了使用`ftplib.FTP()`连接到FTP服务器,需提供主机名作为参数。对于匿名登录,则可以直接传递用户名和密码;如果需要特定账户访问则应指定这些凭证。
```python
from ftplib import FTP
ftp = FTP('ftp.example.com')
ftp.login(user='username', passwd='password') # 对于匿名登录可省略此行
ftp.cwd('/desired/directory/path/')
```
[^1]
#### 列出当前工作目录中的文件列表
一旦成功建立了与目标FTP站点的会话,就可以调用方法获取远程路径下的项目清单:
```python
files = ftp.nlst()
print(files)
```
上述命令返回的是一个字符串数组形式的结果集,其中包含了位于所选位置内的所有条目名称(即文件夹及文档)。这有助于确认即将执行的操作对象是否存在以及具体位置。
#### 上载本地文件至FTP服务器
当准备向远端存储空间传送资料时,有两种主要方式取决于待处理的数据类型——二进制模式适合大多数情况如图片视频等非纯文本资源;而ASCII模式适用于简单文本交换场景比如配置脚本之类的内容。
针对大容量或多用途媒体素材推荐采用二进制传输机制:
```python
with open('local_file.zip', 'rb') as file:
ftp.storbinary(f'STOR remote_file.zip', file, blocksize=8192)
```
而对于纯文本材料可以选择更高效的ASCII编码方案:
```python
with open('local_textfile.txt', 'r') as file:
ftp.storlines(f'STOR remote_textfile.txt', file)
```
[^2][^3]
#### 下载FTP服务器上的文件
从FTP服务器检索文件同样支持两种不同的读取策略:一种是以字节流的形式逐块接收整个文件体直至结束标记到达客户端侧;另一种则是按照行分隔符解析每一行内容再依次写入新创建的目标文件内。
对于一般性的多媒体资产建议运用前者完成高效稳定的拉取动作:
```python
with open('downloaded_binary_file.zip', 'wb') as local_file:
ftp.retrbinary('RETR remote_binary_file.zip', local_file.write, blocksize=8192)
```
相反地,在面对仅含字符序列而不涉及复杂格式化的场合下,后者可能更加适用:
```python
with open('downloaded_text_file.txt', 'w') as local_file:
def handle_line(line):
local_file.write(line.decode() + '\n')
ftp.retrlines('RETR remote_text_file.txt', callback=handle_line)
```
#### 移除FTP服务器上存在的文件
最后要介绍的功能是如何安全有效地删除不再需要保存在网络驱动器里的过期或无价值的信息单元。只需一行简洁明了的指令即可达成目的:
```python
ftp.delete('remote_filename_to_be_deleted.ext')
```
值得注意的是,在实际应用过程中应当谨慎对待此类操作以免误删重要数据造成不可逆损失。
[^4]
阅读全文