我正在尝试从Windows命令行对文本文件运行程序(word_count.py)。 但是,它会抛出并读取文件异常。有人可以告诉我为什么吗?
这是py文件:
import sys
import re
import string
def Usage():
print "Usage:word_count.py [doc1] [doc2] ... [docN]"
if len(sys.argv) == 1:
Usage()
sys.exit()
for fn in sys.argv[1:]:
try:
with open(fn) as textf:
word_map = {}
total_cnt = 0
# reads one line at a time
for line in textf:
line = line.strip()
if not line:
continue
tempwords = line.split()
for w in tempwords:
w = re.sub('[%s]' % re.escape(string.punctuation), '', w)
if w:
if w.lower() in word_map:
word_map[w.lower()] += 1
else:
word_map[w.lower()] = 1
total_cnt += 1
print fn+' ------ total word count: '+str(total_cnt)
output_f_name = 'word_count_'+fn
with open(output_f_name, 'wb') as output:
for ele in sorted(word_map.items(), key=lambda x:x[1], reverse=True):
output.write('{} {}\n'.format(str(ele[1]).rjust(6), ele[0].ljust(2)))
except IOError:
print 'Cannot open file %s for reading' % fn
exit(1)
.py文件和.txt文件都位于我的桌面上,我使用以下命令从命令行运行程序:
C:\用户\我\桌面和GT; word_count.py [file.txt]
答案 0 :(得分:2)
如果您的意思是在字面上用命令行上的方括号围绕文件名,那可能就是问题所在。尽管将参数视为列表,但它是推断的,您只需通过在其间包含空格来分隔列表项。
答案 1 :(得分:0)
您不应在命令行的文件名周围放置方括号。
请改用:
word_count.py file.txt
方括号通常用于表示参数在使用字符串中是可选的。