我目前通过一堆记忆错误的AWK,sed,Bash和一小部分Perl进行文本文件操作.
我已经看到过一些地方,python很适合这种事情.我如何使用Python来替换shell脚本,AWK,sed和朋友?
为了我的硕士论文,我下载了大量与金融相关的文件。我的目标是找到一组特定的词语(“第11章”)来标记所有已完成债务重组过程的公司。问题是我有超过 120 万个小文件,这使得搜索效率很低。现在我编写了非常基本的代码,并且达到了每 40-50 秒 1000 个文档的速度。我想知道是否有一些特定的库或方法(甚至编程语言)可以更快地搜索。这是我到目前为止使用的功能
def get_items(m):
word = "chapter 11"
f = open(m, encoding='utf8')
document = f.read()
f.close()
return (word in document.lower())
# apply the function to the list of names:
l_v1 = list(map(get_items,filenames))
Run Code Online (Sandbox Code Playgroud)
文件大小在 5 到 4000 KB 之间变化
abc=123
dabc=123
abc=456
dabc=789
aabd=123
Run Code Online (Sandbox Code Playgroud)
从上面的文件我需要找到以abc =开头的行(空格无关紧要)
在ruby中我会把它放在一个数组中然后做
matches = input.grep(/^\s*abc=.*/).map(&:strip)
Run Code Online (Sandbox Code Playgroud)
我是Python中的一个完全noob,甚至说我是一个新的Python开发人员太多了.
也许有一个更好的"Python方式",甚至没有grepping?
我需要解决问题的平台上提供的Python版本是2.6
当时没有办法使用Ruby