正则表达式搜索文件

时间:2017-12-01 21:57:43

标签: python csv

我有一个csv文件,我想在阿拉伯语中搜索一个特定的单词

lines = 0
with io.open('path.csv','r',encoding="utf-8") as f:
    for line in f :
     lines= lines+1
     r=re.search(r'\w''[\u0627\u0644\u0631\u064A\u0627\u0636]',f)
     print (line,r)     
f.close()

我想打印带有单词的行就像将包含我的单词的行提取到新的csv文件

我收到此错误

traceback (most recent call last):
  File "path.py", line 11, in <module>
    r=re.search(r'\w''[\u0627\u0644\u0631\u064A\u0627\u0636]',f)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", line 182, in search
    return _compile(pattern, flags).search(string)
TypeError: expected string or bytes-like object

1 个答案:

答案 0 :(得分:0)

这里有一些评论:

  • re.search应该在&#34; line&#34;中寻找匹配。即文件的当前行
  • 我假设你想要打印行号(行)和匹配,而不是行的完整字符串
  • 如果您使用&#34;&#34;打开它,则无需说f.close()。上下文管理器
  • 你说你想要匹配一个单词。将阿拉伯字符放在方括号内将基于任何一个字符匹配,而不是完整字。删除方括号
  • 你真的需要\ _吗?

这是怎么回事:

import io
import re

lines = 0
with io.open('path.csv','r', encoding="utf-8") as f:
    for line in f :
        lines += 1
        r = re.search('\u0627\u0644\u0631\u064A\u0627\u0636', line)
        if r:
            print (lines, r)