【问题】

I’m digging Python sooo much. I love it!

I have come upon my first snag: scanning a file for some strings, and then correctly building separate arrays each of matched, unmatched, and “empty” strings, and then printing each array.

I’ve tried this several ways with several different Python file and sequence iteration constructs (6, I think), with both UTF-8 HTML and ASCII text files.

I have had mixed results - many positive - but none of file.read(), file.readline(), file.readlines(), or file.xreadlines() work as expected after opening the file for reading vai file = open(‘afile’, ‘r’).

:(

I can get part of a given array built, and loop through, but for some reason, a given array is built only partially because the various read*() functions are not working as I have been expecting them to in the script proper….even after testing them successfully in the interpreter!

Code to follow soon, but basically:

tagsf = \[<'tagsfloat1>', '<tagsfloat2>'\]
tagso = \['<openingtag1>', '<openingtag2>',\]
tagsc = \['<closingtag1>', '<closingtag2>',\]
tagp = tagsf +tagso + tagsc  doc = open('afile.html', 'r')
page = \[\]
tagy = \[\]
tagn = \[\]
for lines in doc.read()  page.append(lines)  for line in page:  for tag in tagp:  if tag in tagy:  break  if tag in tagn:  break  if tag in line:  if tag not in tagy:  tagy.append(tag)  if tag not in tagn:  tagn.append(tag)  for tagyes in tagy:  print tagyes, ' found'
for tagno in tagn:  print tagno ' not found!'

WTF: All I ever get is the first damn tag found, or all tags NOT found!

【回答】

这个算法应该很简单,将文件读为一个大字符串,然后用关键字列表 tagall 去匹配,获得 tagy,再计算 tagall 和 tagy 的差集,就能获得 tagn。如果不喜欢用循环语句,可以试试 SPL,比 python 写起来更简单易懂,代码如下:

A
1 =[ "tagsfloat1","tagsfloat2","openingtag1","openingtag2"]
2 =file("E:\\afile.html").read()
3 =A1.select(pos(A2,~))
4 =A1\A3

其中 A3 使用了查询函数 select,这表示对 A1 中的成员进行循环访问,如果符合条件,则作为查询结果返回。条件即 A2(大字符串)中是否包含 ~(A1 的当前成员)。

A1\A3 就是求差集。

详细可参考【集算器程序之循环计算】【集算器程序之集合运算符】

找出字串在文本中出现或未出现的情况相关推荐

  1. KMP算法(快速找出字串)

    核心:通过寻找公共前后缀找出next数组 前后缀: 前缀:以第一个字母开头,但不包含最后一个字母 后缀:以最后一个字母结尾,但不包含第一个字母 注:若当前字符的前一位的最长公共前后缀(len)为2,则 ...

  2. 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数

    给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数.            1.在文件中至少存在这样一个数?            2.如果有足够的内存,如何处理? ...

  3. C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。

    /*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...

  4. C语言习题:输入10个学生5门课的成绩,分别用函数实现下列功能:①计算每个学生的平均分;②计算每门课的平均分;③找出所有50个分数中最高的分数所对应的学生和课程;④计算平均分方差;

    ***题目:***输入10个学生5门课的成绩,分别用函数实现下列功能: ①计算每个学生的平均分; ②计算每门课的平均分; ③找出所有50个分数中最高的分数所对应的学生和课程; ④计算平均分方差; /* ...

  5. 震惊!小伙竟然用python找出了马大师视频中的名场面

    震惊!小伙竟然用python找出了马大师视频中的名场面 前言 一.爬取视频弹幕 二.弹幕分析 1. 弹幕频数统计 2. 绘制频数分布图 3. 标红高潮部分 三.大师的名场面 写在最后 前言 最近江湖中 ...

  6. c语言 有15个数按由大到小,C++ 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。...

    有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,则输出"无此数". 以下是此题的[c++源代码],需要[c ...

  7. 找出一个二维数组中的鞍点

    找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小.也可能没有鞍点. 解题流程如下: 对每行进行遍历.先找到每行的最大值,然后再确定该最大值是否是所在列的最小值,若满足,则为鞍点,遍 ...

  8. 34. 在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标

    34. 在排序数组中查找元素的第一个和最后一个位置 难度中等2012 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target.请你找出给定目标值在数组中的开始位置和结束位置. 如果 ...

  9. (C语言)找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小,也可能没有鞍点。存在则输出坐标;否则输出 -1.

    #include<stdio.h> /* 找出一个二维数组中的鞍点,即该位置上的元素在该行最大, 在该列上最小,也可能没有鞍点.存在则输出坐标:否则输出 -1. */ int main(v ...

最新文章

  1. 面试官:谈谈JWT鉴权的应用场景及使用建议?
  2. 小程序笔记一:基础设置
  3. 数据库:悲观锁与乐观锁
  4. VTK修炼之道21:图像基本操作_彩色图像生成灰度图像
  5. 微信公众平台开发——问题篇
  6. 基于TCP和多线程实现无线鼠标键盘-GestureDetector
  7. PowerDesigner运行自定义VBS脚本,复制Name到Comment
  8. USACO section1.3 Barn Repair 修理牛棚(贪心)
  9. WebPack基础入门(一):万物皆可webpack
  10. SPOJ 196 动态规划
  11. .Net学习笔记----2015-06-24(Hashtable 键值对集合)
  12. 基于Python的Landsat影像建设用地自动识别与提取
  13. Spring源码全解析,帮你彻底学习Spring源码
  14. VB全局热键(快捷键)
  15. 复习IO流复制文件时,文件损坏并且文件变得超大(FileInputStream和FileOutputStream)数组复制
  16. 一个官网很详细的富文本编辑器
  17. iSlide(PPT插件) V3.4.5
  18. ipynb转python(.py)
  19. RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播方案EasyNVR之主要功能模块及相关技术特点与性能指标分析
  20. SEO新手入门系列2022(二):SEO 101

热门文章

  1. php字符串里含有全角符号,php将字符串中全角字符转换为半角字符_PHP教程
  2. Android Unity il2cpp 编译异常
  3. kubernetes 中安装 heapster 问题
  4. GIS WKB/EWKB 结构
  5. 设置多行省略号-webkit-line-clamp
  6. Accrual Engine 手工应计(转载)
  7. 【首次免费】下载价值16880元转型人工智能、大数据开发全套教程(视频+源码)......
  8. 区块链媒体耳朵财经获Wemedia数百万元天使轮融资
  9. linux系统怎么看时间,查看和修改linux系统时间
  10. 交互媒体专题设计之一艺工交叉