使用python编写程序,用户输入一个目录和一个文件名,搜索该目录及其子目录中是否存在该文件。对目录要先判断目录是否存在,如果不存在可使用户重新输入。代码注意缩进
时间: 2023-12-03 16:45:25 浏览: 221
可以使用Python标准库中的os和fnmatch模块来实现文件搜索功能。以下是示例代码:
```python
import os
import fnmatch
# 输入目录和文件名
directory = input("请输入目录:")
filename = input("请输入文件名:")
# 判断目录是否存在
while not os.path.exists(directory):
directory = input("目录不存在,请重新输入目录:")
# 遍历目录及其子目录,搜索文件
for root, dirs, files in os.walk(directory):
for file in files:
if fnmatch.fnmatch(file, filename):
print(os.path.join(root, file))
```
代码首先提示用户输入目录和文件名,并使用while循环判断目录是否存在,如果不存在则要求用户重新输入。然后使用os.walk遍历目录及其子目录,对每个文件名进行fnmatch匹配,如果匹配成功则输出该文件的绝对路径。
相关问题
python编写程序,用户输入一个目录和一个文件名,搜索该目录及其子目录中是否存在该文件
可以使用os模块中的walk函数递归遍历目录及其子目录,并使用os.path模块中的join、isfile函数判断是否为文件以及是否匹配文件名。
以下是示例代码:
```python
import os
def search_file(dir_path, file_name):
for root, dirs, files in os.walk(dir_path):
for file in files:
if file == file_name:
return os.path.join(root, file)
return None
dir_path = input("请输入目录路径:")
file_name = input("请输入文件名:")
result = search_file(dir_path, file_name)
if result:
print(f"文件 {file_name} 存在于路径:{result}")
else:
print(f"文件 {file_name} 不存在于目录 {dir_path} 及其子目录中")
```
代码中使用了os.path.join函数将根目录和文件名拼接为完整路径,使用了os.path.isfile函数判断文件是否存在。如果找到匹配的文件,则返回该文件的完整路径。如果遍历完所有文件都没有找到匹配的文件,则返回None。
编写Python程序,用户输入一个目录和一个文件名,搜索该目录及其子目录中是否存在该文件
可以使用 `os` 模块来实现搜索目录中的文件。以下是一个简单的 Python 程序,可以实现该功能:
```python
import os
def search_file(directory, filename):
"""
在指定目录及其子目录中搜索指定文件名的文件
"""
# 遍历目录及其子目录中的所有文件
for root, dirs, files in os.walk(directory):
# 检查每个文件是否匹配指定的文件名
for file in files:
if file == filename:
# 如果匹配,则返回文件的完整路径
return os.path.join(root, file)
# 如果未找到匹配的文件,则返回空字符串
return ""
# 示例使用
directory = input("请输入目录路径:")
filename = input("请输入文件名:")
result = search_file(directory, filename)
if result:
print("文件已找到:", result)
else:
print("未找到指定的文件。")
```
该程序首先定义了一个 `search_file` 函数,用于搜索指定目录及其子目录中是否存在指定文件名的文件。该函数使用 `os.walk` 函数遍历目录及其子目录中的所有文件,然后逐一检查每个文件是否匹配指定的文件名。如果找到匹配的文件,则返回文件的完整路径;否则返回空字符串。
在示例中,程序首先提示用户输入目录路径和文件名,然后调用 `search_file` 函数进行搜索。如果找到匹配的文件,则输出文件的完整路径;否则输出未找到指定的文件的提示信息。
阅读全文