用Python打开一个目录下的所有txt,并判断每个txt里是否含有内容“struct”,如果有就输出txt文件名
时间: 2023-09-23 07:06:22 浏览: 53
### 回答1:
可以使用Python的os模块来解决。下面是一段示例代码:import os# 遍历当前文件夹下所有txt文件
for file in os.listdir():
if file.endswith('.txt'):
# 读取文件内容
with open(file) as f:
content = f.read()
# 判断文件内容是否含有“struct”
if 'struct' in content:
print(file)
### 回答2:
可以使用Python的os和re模块来实现打开目录下的所有txt文件,并判断文件中是否含有内容"struct"。以下是一个实现的代码示例:
```python
import os
import re
def search_txt_files(directory):
# 获取目录下所有文件和文件夹
files = os.listdir(directory)
# 遍历所有文件和文件夹
for file in files:
# 拼接文件的完整路径
filepath = os.path.join(directory, file)
# 判断是否是txt文件
if os.path.isfile(filepath) and file.endswith('.txt'):
# 打开txt文件并判断是否含有内容"struct"
with open(filepath, 'r') as f:
content = f.read()
if re.search(r'struct', content):
print(file)
# 替换为你需要打开的目录路径
directory = '/path/to/directory'
search_txt_files(directory)
```
以上代码首先使用`os.listdir()`方法获取目录下的所有文件和文件夹的列表。然后判断每个文件是否是txt文件,并打开它们。接着使用`re.search()`方法在文件的内容中搜索"struct"字符串,如果找到了则输出文件名。最后将你需要打开的目录路径替换为变量`directory`的值即可。
需要注意的是,以上代码只会搜索第一层的文件,如果目录下还包含子目录,你可以使用递归的方式来遍历所有子目录下的txt文件。
### 回答3:
可以使用Python的os库来操作文件和目录,使用glob模块来匹配文件路径名。
首先,可以使用glob模块来获取指定目录下的所有txt文件的路径名列表。然后,使用循环遍历这个列表,逐个打开文件,并使用Python内置的字符串操作函数来判断文件是否包含内容“struct”。
```python
import os
import glob
# 指定目录路径
dir_path = '目录路径'
# 使用glob模块获取指定目录下的所有txt文件的路径名列表
file_list = glob.glob(os.path.join(dir_path, '*.txt'))
# 遍历文件列表
for file_path in file_list:
# 打开文件
with open(file_path, 'r') as file:
# 读取文件内容
content = file.read()
# 判断文件内容是否包含“struct”
if 'struct' in content:
# 输出文件名
print(os.path.basename(file_path))
```
在代码中,首先使用`glob.glob()`函数结合`os.path.join()`函数获取指定目录下所有文件名为txt的文件路径。然后,使用`open()`函数来打开每个文件,并使用`file.read()`函数将文件内容读取为字符串。接着,使用`in`操作符判断字符串是否包含“struct”,如果包含,则使用`os.path.basename()`函数获取文件名,并输出文件名。
最后,可以将以上代码保存为一个.py文件,在命令行中运行即可实现打开指定目录下所有txt文件,并判断是否包含内容“struct”,如果有就输出txt文件名。