获取从终端输入的文件名及关键字,打开文件,利用文件迭代器按行读取文件,然后打印输出包含关键字的行,最后关闭文件
时间: 2024-03-10 18:50:27 浏览: 122
下面是一个简单的Python程序,可以获取从终端输入的文件名及关键字,打开文件,利用文件迭代器按行读取文件,然后打印输出包含关键字的行,最后关闭文件:
```python
import sys
# 获取文件名和关键字
if len(sys.argv) < 3:
print("Usage: python search.py <filename> <keyword>")
sys.exit(1)
filename = sys.argv[1]
keyword = sys.argv[2]
# 打开文件
try:
with open(filename, 'r') as f:
# 逐行读取文件
for line in f:
# 判断是否包含关键字
if keyword in line:
print(line.strip()) # 输出包含关键字的行
except FileNotFoundError:
print("File not found:", filename)
sys.exit(1)
# 关闭文件
f.close()
```
在终端上执行以下命令,可以运行以上程序:
```
python search.py filename.txt keyword
```
其中,`filename.txt`是要搜索的文件名,`keyword`是要搜索的关键字。程序会打印包含关键字的行。
相关问题
文件名有关键字,读取这些文件
如果你想读取文件名中包含指定关键字的所有文件,你可以使用 Python 的 `os` 模块中的 `listdir` 函数来列出目录中的所有文件名,然后再筛选出包含指定关键字的文件名,最后按照需要读取这些文件。
下面是一个示例代码,它会读取指定目录下所有文件名中包含指定关键字的文件,并将这些文件的内容存储在一个列表中:
```python
import os
def read_files_with_keyword(directory, keyword):
matched_files = []
for filename in os.listdir(directory):
if keyword in filename:
filepath = os.path.join(directory, filename)
with open(filepath, "r") as file:
file_content = file.read()
matched_files.append(file_content)
return matched_files
```
你可以调用这个函数来读取指定目录下所有文件名中包含指定关键字的文件,例如:
```python
matched_files = read_files_with_keyword("/path/to/directory", "apple")
print(matched_files)
```
这将打印出所有文件名中包含关键字“apple”的文件的内容。请注意,`/path/to/directory` 应该替换为实际的目录路径。
用python编码要求分别输入文件夹名字和要查找文件名的关键字,列出符合要求的文件路径及文件名
以下是一个示例代码,可以实现输入文件夹名字和要查找文件名的关键字,然后列出符合要求的文件路径及文件名。
```python
import os
# 获取用户输入的文件夹名字和要查找的关键字
folder_path = input("请输入文件夹路径:")
keyword = input("请输入要查找的关键字:")
# 遍历文件夹及其子文件夹,查找符合要求的文件
for root, dirs, files in os.walk(folder_path):
for file in files:
if keyword in file:
file_path = os.path.join(root, file)
print(file_path)
```
代码中使用了Python内置的`os`模块,其中`os.walk`可以遍历文件夹及其子文件夹,`os.path.join`可以拼接文件路径,最终输出符合要求的文件路径。
阅读全文