如何使用 Python 对字数进行排序?
How can i sort order of wordcount with Python?
我正在使用此代码来计算文本文件中的相同单词。
filename = input("Enter name of input file: ")
file = open(filename, "r", encoding="utf8")
wordCounter = {}
with open(filename,'r',encoding="utf8") as fh:
for line in fh:
# Replacing punctuation characters. Making the string to lower.
# The split will spit the line into a list.
word_list = line.replace(',','').replace('\'','').replace('.','').replace("'",'').replace('"','').replace('"','').replace('#','').replace('!','').replace('^','').replace('$','').replace('+','').replace('%','').replace('&','').replace('/','').replace('{','').replace('}','').replace('[','').replace(']','').replace('(','').replace(')','').replace('=','').replace('*','').replace('?','').lower().split()
for word in word_list:
# Adding the word into the wordCounter dictionary.
if word not in wordCounter:
wordCounter[word] = 1
else:
# if the word is already in the dictionary update its count.
wordCounter[word] = wordCounter[word] + 1
print('{:15}{:3}'.format('Word','Count'))
print('-' * 18)
# printing the words and its occurrence.
for word,occurance in wordCounter.items():
print(word,occurance)
我需要它们按从大到小的顺序排列作为输出。例如:
单词 1: 25
单词 2: 12
字数 3: 5
.
.
.
我还需要将输入作为“.txt”文件获取。如果用户写入任何不同的内容,程序必须收到“写入有效文件名”的错误。
如何在排序输出的同时生成错误代码?
为了按顺序打印,您可以在打印前按如下所示对它们进行排序:
for word,occurance in sorted(wordCounter.items(), key=lambda x: x[1], reverse=True):
print(word,occurance)
为了按照您想要的方式检查文件是否有效,您可以考虑使用:
import os
path1 = "path/to/file1.txt"
path2 = "path/to/file2.png"
if not path1.lower().endswith('.txt'):
print("Write a valid file name")
if not os.path.exists(path1):
print("File does not exists!")
你可以试试:
if ( filename[-4:0] != '.txt'):
print('Please input a valid file name')
并重复输入命令...
我正在使用此代码来计算文本文件中的相同单词。
filename = input("Enter name of input file: ")
file = open(filename, "r", encoding="utf8")
wordCounter = {}
with open(filename,'r',encoding="utf8") as fh:
for line in fh:
# Replacing punctuation characters. Making the string to lower.
# The split will spit the line into a list.
word_list = line.replace(',','').replace('\'','').replace('.','').replace("'",'').replace('"','').replace('"','').replace('#','').replace('!','').replace('^','').replace('$','').replace('+','').replace('%','').replace('&','').replace('/','').replace('{','').replace('}','').replace('[','').replace(']','').replace('(','').replace(')','').replace('=','').replace('*','').replace('?','').lower().split()
for word in word_list:
# Adding the word into the wordCounter dictionary.
if word not in wordCounter:
wordCounter[word] = 1
else:
# if the word is already in the dictionary update its count.
wordCounter[word] = wordCounter[word] + 1
print('{:15}{:3}'.format('Word','Count'))
print('-' * 18)
# printing the words and its occurrence.
for word,occurance in wordCounter.items():
print(word,occurance)
我需要它们按从大到小的顺序排列作为输出。例如:
单词 1: 25
单词 2: 12
字数 3: 5 . . .
我还需要将输入作为“.txt”文件获取。如果用户写入任何不同的内容,程序必须收到“写入有效文件名”的错误。
如何在排序输出的同时生成错误代码?
为了按顺序打印,您可以在打印前按如下所示对它们进行排序:
for word,occurance in sorted(wordCounter.items(), key=lambda x: x[1], reverse=True):
print(word,occurance)
为了按照您想要的方式检查文件是否有效,您可以考虑使用:
import os
path1 = "path/to/file1.txt"
path2 = "path/to/file2.png"
if not path1.lower().endswith('.txt'):
print("Write a valid file name")
if not os.path.exists(path1):
print("File does not exists!")
你可以试试:
if ( filename[-4:0] != '.txt'):
print('Please input a valid file name')
并重复输入命令...