import os import docx text=[] man=0 wom=0 jy=0 wm=0 hz=0 sz=0 p=p+1 path="E:\\keshihua\\data\\sec\\docx\\docx" filelist=os.listdir(path) for image_id in filelist: position=path+"\\"+image_id f=docx.Document(position) for para in f.paragraphs: text.extend(para.text.split(',')) for i in text: if i[-1]=="族" if i=="汉族": hz=hz+1 break else: sz=sz+1 break
时间: 2024-03-08 21:50:45 浏览: 67
在你提供的代码中,有一些语法错误。具体如下:
1. 在第4行中,p 变量未定义,应该先定义后使用。
2. 在第11行中,缺少冒号“:”,导致语法错误。
3. 在第14行和第18行中,缺少一个缩进,导致语法错误。
4. 在第15行和第19行中,缺少一个换行,以便将 `if` 和 `break` 放在同一行上。
5. 在第16行和第20行中,应该使用 `i.endswith("族")` 函数判断字符串是否以 "族" 结尾。
6. 在第17行中,缺少一个冒号“:”。
综上所述,可以参考下面的代码:
```python
import os
import docx
text = []
man, wom, jy, wm, hz, sz = 0, 0, 0, 0, 0, 0
p = 0
path = "E:/keshihua/data/sec/docx/docx"
filelist = os.listdir(path)
for image_id in filelist:
position = path + "\\" + image_id
f = docx.Document(position)
for para in f.paragraphs:
text.extend(para.text.split(','))
for i in text:
if i.endswith("族"):
if i == "汉族":
hz += 1
break
else:
sz += 1
break
```
上述代码中,我们使用一个循环遍历文件夹中的所有文档,读取每个文档中的所有段落,并将段落中的文本添加到 `text` 列表中。然后,再遍历 `text` 列表中的每个元素,判断该元素是否以 "族" 结尾,如果是,再判断该元素是否等于 "汉族",如果是,则将 `hz` 加 1,否则将 `sz` 加 1。注意,使用 `break` 语句可以提高程序的效率,避免不必要的比较操作。
阅读全文