python ftp 判断文件是否存在
时间: 2023-08-19 17:04:57 浏览: 607
你可以使用 Python 的 ftplib 模块来连接 FTP 服务器,并使用 FTP 对象的 nlst() 方法获取 FTP 服务器上的文件列表,然后判断文件是否存在。以下是一个示例代码:
```python
import ftplib
ftp = ftplib.FTP("ftp.example.com")
ftp.login("username", "password")
filename = "example.txt"
filelist = ftp.nlst() # 获取文件列表
if filename in filelist:
print(f"{filename} exists on remote FTP server.")
else:
print(f"{filename} does not exist on remote FTP server.")
ftp.quit()
```
在上面的示例代码中,我们首先连接到 FTP 服务器,然后使用 nlst() 方法获取文件列表。然后,我们检查要查找的文件名是否在列表中,如果存在,则输出相应的消息,否则输出另一条消息。最后,我们断开与 FTP 服务器的连接。
相关问题
python 判断FTP文件是否存在
可以使用ftplib模块来连接FTP服务器并判断文件是否存在。具体步骤如下:
```python
# -*- coding: utf-8 -*-
import ftplib
def ftp_file_exists(host, port, username, password, file_path):
try:
ftp = ftplib.FTP()
ftp.connect(host, port)
ftp.login(username, password)
ftp.cwd('/')
if file_path in ftp.nlst():
return True
else:
return False
except Exception as e:
print(e)
return False
```
以上代码中,`ftp_file_exists`函数接收5个参数,分别是FTP服务器的地址、端口、用户名、密码以及要判断的文件路径。函数内部使用`ftplib`模块连接FTP服务器,并通过`nlst()`方法获取FTP服务器上的文件列表,判断要查找的文件是否在列表中。
python 判断ftp是否存在目录,若不存在则ftp远程创建一个或者层级目录
可以使用 Python 的 ftplib 库来实现判断是否存在目录,并在不存在目录时创建一个或者多个层级目录的功能。具体步骤如下:
1. 连接 FTP 服务器:
```python
from ftplib import FTP
ftp = FTP(host, user, password)
```
2. 判断目录是否存在,可以使用 `nlst` 方法获取当前目录下的所有文件和目录列表,并判断需要的目录是否存在:
```python
def is_ftp_dir_exists(ftp, remote_path):
file_list = []
try:
ftp.retrlines('LIST ' + remote_path, file_list.append)
except Exception as e:
print(e)
return False
for file in file_list:
if file.split()[-1] == remote_path.split('/')[-1]:
return True
return False
```
3. 如果目录不存在,则使用 `mkd` 方法逐层创建目录:
```python
def ftp_mkdir_recursive(ftp, remote_path):
if is_ftp_dir_exists(ftp, remote_path):
return True
else:
parent_dir = remote_path[:remote_path.rfind('/')]
if ftp_mkdir_recursive(ftp, parent_dir):
try:
ftp.mkd(remote_path)
return True
except Exception as e:
print(e)
return False
else:
return False
```
完整代码示例:
```python
from ftplib import FTP
host = 'ftp.example.com'
user = 'username'
password = 'password'
remote_path = '/remote/path/to/directory'
ftp = FTP(host, user, password)
def is_ftp_dir_exists(ftp, remote_path):
file_list = []
try:
ftp.retrlines('LIST ' + remote_path, file_list.append)
except Exception as e:
print(e)
return False
for file in file_list:
if file.split()[-1] == remote_path.split('/')[-1]:
return True
return False
def ftp_mkdir_recursive(ftp, remote_path):
if is_ftp_dir_exists(ftp, remote_path):
return True
else:
parent_dir = remote_path[:remote_path.rfind('/')]
if ftp_mkdir_recursive(ftp, parent_dir):
try:
ftp.mkd(remote_path)
return True
except Exception as e:
print(e)
return False
else:
return False
if ftp_mkdir_recursive(ftp, remote_path):
print('目录创建成功!')
else:
print('目录创建失败!')
ftp.quit()
```
注意:FTP 服务器需要有创建目录的权限。
阅读全文