gpt4 book ai didi

python - 在文本文件中查找所有单词的更快方法

转载 作者:行者123 更新时间:2023-11-28 21:39:09 30 4
gpt4 key购买 nike

我编写了一个实用程序来扫描文本文件中所有包含字母字符的空格分隔字段,它工作得很好但速度很慢,因为我将每一行拆分为单词并扫描每个单词,有没有更快的方法来做到这一点?

谢谢。

代码如下:

#!/bin/python
import argparse
import sys
import time

parser = argparse.ArgumentParser(description='Find all alpha characters in
an input file')
parser.add_argument('file', type=argparse.FileType('r'),
help='filename.txt')

args = parser.parse_args()

def letters(input):
output = []
for character in input:
if character.isalpha():
output = input
return output

def main(argv):

start = time.time()
fname = sys.argv[1]

f = open(fname)
for line in f:
words = line.rstrip().split()
for word in words:
alphaWord = letters(word)
if alphaWord:
print(alphaWord)
f.close()

end = time.time()
elapsed = end - start
print "%s secs elapsed" % elapsed

if __name__ == "__main__":
main(sys.argv)

最佳答案

你的程序在 letters() 中有一个错误:

def letters(input):
output = []
for character in input:
if character.isalpha():
output = input # after we get here we'll keep iterating
# even though the result will not change
return output

您正在做的是迭代所有字母,即使其中一个是字母数字,您会将输入保存到 output 中,但您还将继续迭代其余字符 -这不会添加任何东西。

要么你想检查所有的字符(然后程序返回错误的结果),要么,如果程序返回正确的结果,你可能想在行后break:output = 输入

关于python - 在文本文件中查找所有单词的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47227166/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com