函数不运行的问题。
代码如下:import os
keyname = ['1树脂', '1.1树脂及基料', '1.1.01醇酸树脂', '1.1.02丙烯酸树脂', '1.1.03环氧树脂', '1.1.04聚酯树脂',
'1.1.05聚氨酯树脂', '1.1.06有机硅树脂', '1.1.07氟树脂', '1.1.08混合型树脂', '1.1.09纤维素树脂',
'1.1.10氯化聚烯烃', '1.1.11氨基树脂', '1.1.12异氰酸盐硬脂', '1.1.13三聚氰胺树脂', '1.1.14天然树脂',
'1.1.15功能树脂', '1.1.16树脂原材料', '1.1.17单体', '1.1.18基料', '1.1.19天然漆基', '1.1.20中间体',
'1.1.21油及脂肪酸', '1.1.22其它树脂和基料', '1.2颜料及填充剂', '1.2.01防腐颜料', '1.2.02效果颜料',
'1.2.03无机颜料', '1.2.04有机颜料', '1.2.05白色颜料', '1.2.06浓缩颜料', '1.2.07其它颜料', '1.2.08填充剂',
'1.3功能助剂及溶剂', '1.3.01消泡剂/防泡剂', '1.3.02防结皮剂', '1.3.03粘合促进剂', '1.3.04杀菌剂及防腐剂',
'1.3.05交联剂', '1.3.06催干剂', '1.3.07乳化剂', '1.3.08表面活性剂', '1.3.09分散剂', '1.3.10流变改进剂',
'1.3.11增稠剂', '1.3.12触变剂', '1.3.13流平剂', '1.3.14消光剂', '1.3.15稳定剂', '1.3.16蜡类', '1.3.17催化剂',
'1.3.18增滑助剂及滑润剂', '1.3.19增塑剂', '1.3.20其它助剂', '1.3.21溶剂', '1.3.22引发剂', '2粉末涂料',
'2.1适合终端应用的树脂及颜料', '2.2改善分散力及应用固体溶剂', '2.3挤压机/挤出机/捏合机',
'2.4其它粉末涂料生产设备', '2.5用于温度敏感底材的粉末涂料', '2.6紫外线及NIR固化粉末涂料', '2.7聚酯代替物',
'2.8异氰脲酸三缩水甘油酯系统', '2.9金属效果粉末涂料', '3固化技术', '3.1单体/齐聚物', '3.2光化学及聚合技术',
'3.3紫外线/电子束固化技术', '3.4应用及设备', '4生产/包装设备及装置', '4.01大规模生产设备及装置',
'4.02混料器/搅拌机', '4.03溶解设备', '4.04搬运及包装', '4.05自动化及厂房管理',
'4.06分料、装料及混合/调色系统', '4.07研磨机/研磨介质', '4.08过滤器、泵、计量仪/称重装置', '4.09包装机贴标签机',
'4.10颜色分散机', '5涂料、油墨及粘合剂产品', '5.1清漆、亮漆', '5.2粉末涂料', '5.3印刷油墨',
'5.4粘合剂及防渗剂/密封剂/密封胶', '5.5建筑业化学品', '5.6功能及智能涂料及油墨', '5.7纳米技术',
'6涂料测量及测试', '6.1颜色及其它视像特征', '6.2化学表征', '6.3测量及测试的创新',
'6.4油漆特征(粘度、流变性、湿性行为等)', '6.5干膜及机械性能(包括耐久性)', '6.6表面分析', '7安全、健康、环保',
'7.01厂房管理', '7.02回收', '7.03废处理', '7.04卫生及易洁表面', '7.05包装及减废', '7.06环保技术',
'7.07环保及安全设备', '8其它服务', '8.01顾问', '8.02技术信息', '8.03刊物/传媒', '8.04软件/硬件',
'8.05电子商务', '8.06培训与教育', '8.07研发', '8.08行业协会', '8.09认证服务']
path = r'E:\【Python项目】\涂料展收集\tuliao'
def check(name,path):
for root, dirs, files in os.walk(path):
for file in files:
Ffile = os.path.join(root, file)
with open(Ffile, 'r', encoding='utf-8') as f:
if name in f.read():
print('\t\t', Ffile)
for name in keyname:
print(name)
check(name,path=path)
这个check函数好像不能运行。
直接循环输出了print(name)了
而不是包含name的时候,输出显示Ffile
想了半天不知道问题出在哪里了。
感谢感谢
你好,根据你提供的代码,我发现问题可能出在 check 函数中。在 check 函数中,你打开了文件并读取其中的内容,但没有使用 return 语句返回任何值,所以即使找到包含 name 的文件,也不会有任何输出。
你可以尝试将 check 函数的最后一行改为 return Ffile,这样函数就能返回包含 name 的文件路径,并在主函数中进行输出。
另外,建议在循环中加入 try-except 语句,以处理可能出现的文件读取异常。代码示例:
import os
keyname = ['1树脂', '1.1树脂及基料', '1.1.01醇酸树脂', '1.1.02丙烯酸树脂', '1.1.03环氧树脂', '1.1.04聚酯树脂',
'1.1.05聚氨酯树脂', '1.1.06有机硅树脂', '1.1.07氟树脂', '1.1.08混合型树脂', '1.1.09纤维素树脂',
'1.1.10氯化聚烯烃', '1.1.11氨基树脂', '1.1.12异氰酸盐硬脂', '1.1.13三聚氰胺树脂', '1.1.14天然树脂',
'1.1.15功能树脂', '1.1.16树脂原材料', '1.1.17单体', '1.1.18基料', '1.1.19天然漆基', '1.1.20中间体',
'1.1.21油及脂肪酸', '1.1.22其它树脂和基料', '1.2颜料及填充剂', '1.2.01防腐颜料', '1.2.02效果颜料',
'1.2.03无机颜料', '1.2.04有机颜料', '1.2.05白色颜料', '1.2.06浓缩颜料', '1.2.07其它颜料', '1.2.08填充剂',
'1.3功能助剂及溶剂', '1.3.01消泡剂/防泡剂', '1.3.02防结皮剂', '1.3.03粘合促进剂', '1.3.04杀菌剂及防腐剂',
'1.3.05交联剂', '1.3.06催干剂', '1.3.07乳化剂', '1.3.08表面活性剂', '1.3.09分散剂', '1.3.10流变改进剂',
'1.3.11增稠剂', '1.3.12触变剂', '1.3.13流平剂', '1.3.14消光剂', '1.3.15稳定剂', '1.3.16蜡类', '1.3.17催化剂',
'1.3.18增滑助剂及滑润剂', '1.3.19增塑剂', '1.3.20其它助剂', '1.3.21溶剂', '1.3.22引发剂', '2粉末涂料',
'2.1适合终端应用的树脂及颜料', '2.2改善分散力及应用固体溶剂', '2.3挤压机/挤出机/捏合机',
'2.4其它粉末涂料生产设备', '2.5用于温度敏感底材的粉末涂料', '2.6紫外线及NIR固化粉末涂料', '2.7聚酯代替物',
'2.8异氰脲酸三缩水甘油酯系统', '2.9金属效果粉末涂料', '3固化技术', '3.1单体/齐聚物', '3.2光化学及聚合技术',
'3.3紫外线/电子束固化技术', '3.4应用及设备', '4生产/包装设备及装置', '4.01大规模生产设备及装置',
'4.02混料器/搅拌机', '4.03溶解设备', '4.04搬运及包装', '4.05自动化及厂房管理',
'4.06分料、装料及混合/调色系统', '4.07研磨机/研磨介质', '4.08过滤器、泵、计量仪/称重装置', '4.09包装机贴标签机',
'4.10颜色分散机', '5涂料、油墨及粘合剂产品', '5.1清漆、亮漆', '5.2粉末涂料', '5.3印刷油墨',
'5.4粘合剂及防渗剂/密封剂/密封胶', '5.5建筑业化学品', '5.6功能及智能涂料及油墨', '5.7纳米技术',
'6涂料测量及测试', '6.1颜色及其它视像特征', '6.2化学表征', '6.3测量及测试的创新',
'6.4油漆特征(粘度、流变性、湿性行为等)', '6.5干膜及机械性能(包括耐久性)', '6.6表面分析',
'7安全、健康、环保', '7.01厂房管理', '7.02回收', '7.03废处理', '7.04卫生及易洁表面', '7.05包装及减废',
'7.06环保技术', '7.07环保及安全设备', '8其它服务', '8.01顾问', '8.02技术信息', '8.03刊物/传媒',
'8.04软件/硬件', '8.05电子商务', '8.06培训与教育', '8.07研发',
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:} 问题出在你的代码缩进上。在你的代码中, check 函数的定义和 for 循环的定义之间没有正确缩进。这导致 check 函数没有被正确调用,而是直接执行了 print(name) 语句。要解决这个问题,你需要将 check 函数的定义缩进到 for 循环的内部。
以下是修改后的代码:
import os
keyname = ['1树脂', '1.1树脂及基料', '1.1.01醇酸树脂', '1.1.02丙烯酸树脂', '1.1.03环氧树脂', '1.1.04聚酯树脂',
'1.1.05聚氨酯树脂', '1.1.06有机硅树脂', '1.1.07氟树脂', '1.1.08混合型树脂', '1.1.09纤维素树脂',
'1.1.10氯化聚烯烃', '1.1.11氨基树脂', '1.1.12异氰酸盐硬脂', '1.1.13三聚氰胺树脂', '1.1.14天然树脂',
'1.1.15功能树脂', '1.1.16树脂原材料', '1.1.17单体', '1.1.18基料', '1.1.19天然漆基', '1.1.20中间体',
'1.1.21油及脂肪酸', '1.1.22其它树脂和基料', '1.2颜料及填充剂', '1.2.01防腐颜料', '1.2.02效果颜料',
'1.2.03无机颜料', '1.2.04有机颜料', '1.2.05白色颜料', '1.2.06浓缩颜料', '1.2.07其它颜料', '1.2.08填充剂',
'1.3功能助剂及溶剂', '1.3.01消泡剂/防泡剂', '1.3.02防结皮剂', '1.3.03粘合促进剂', '1.3.04杀菌剂及防腐剂',
'1.3.05交联剂', '1.3.06催干剂', '1.3.07乳化剂', '1.3.08表面活性剂', '1.3.09分散剂', '1.3.10流变改进剂',
'1.3.11增稠剂', '1.3.12触变剂', '1.3.13流平剂', '1.3.14消光剂', '1.3.15稳定剂', '1.3.16蜡类', '1.3.17催化剂',
'1.3.18增滑助剂及滑润剂', '1.3.19增塑剂', '1.3.20其它助剂', '1.3.21溶剂', '1.3.22引发剂', '2粉末涂料',
'2.1适合终端应用的树脂及颜料', '2.2改善分散力及应用固体溶剂', '2.3挤压机/挤出机/捏合机',
'2.4其它粉末涂料生产设备', '2.5用于温度敏感底材的粉末涂料', '2.6紫外线及NIR固化粉末涂料', '2.7聚酯代替物',
'2.8异氰脲酸三缩水甘油酯系统', '2.9金属效果粉末涂料', '3固化技术', '3.1单体/齐聚物', '3.2光化学及聚合技术',
'3.3紫外线/电子束固化技术', '3.4应用及设备', '4生产/包装设备及装置', '4.01大规模生产设备及装置',
'4.02混料器/搅拌机', '4.03溶解设备', '4.04搬运及包装', '4.05自动化及厂房管理',
'4.06分料、装料及混合/调色系统', '4.07研磨机/研磨介质', '4.08过滤器、泵、计量仪/称重装置', '4.09包装机贴标签机',
'4.10颜色分散机', '5涂料、油墨及粘合剂产品', '5.1清漆、亮漆', '5.2粉末涂料', '5.3印刷油墨',
'5.4粘合剂及防渗剂/密封剂/密封胶', '5.5建筑业化学品', '5.6功能及智能涂料及油墨', '5.7纳米技术',
'6涂料测量及测试', '6.1颜色及其它视像特征', '6.2化学表征', '6.3测量及测试的创新',
'6.4油漆特征(粘度、流变性、湿性行为等)', '6.5干膜及机械性能(包括耐久性)', '6.6表面分析', '7安全、健康、环保',
'7.01厂房管理', '7.02回收', '7.03废处理', '7.04卫生及易洁表面', '7.05包装及减废', '7.06环保技术',
'7.07环保及安全设备', '8其它服务', '8.01顾问', '8.02技术信息', '8.03刊物/传媒', '8.04软件/硬件',
'8.05电子商务', '8.06培训与教育', '8.07研发', '8.08行业协会', '8.09认证服务']
path = r'E:\【Python项目】\涂料展收集\tuliao'
def check(name, path):
for root, dirs, files in os.walk(path):
for file in files:
Ffile = os.path.join(root, file)
with open(Ffile, 'r', encoding='utf-8') as f:
if name in f.read():
print('\t\t', Ffile)
for name in keyname:
print(name)
check(name, path=path)
希望能帮到你! 一样的,都没有搞定。 本帖最后由 叼辣条闯世界 于 2023-11-6 20:54 编辑
确定文件里有这些内容并且完全匹配吗(3.4应用及设备 和 3.4 应用及设备不是一个东西)?我本地跑没问题啊 会不会是文件里的name前面虽然有序号,但是序号和文字之间有空格,就像这样
“1.1.05聚氨酯树脂”---“1.1.05 聚氨酯树脂”,这样程序是认为内容不一样的。
页:
[1]