I have a .txt file with the following format,
C
V
EH
A
IRQ
C
C
H
IRG
V
尽管显然它比这个大得多,但本质上就是这样。基本上我试图总结每个单独的字符串在文件中出现的次数(每个字母/字符串在单独的一行上,因此从技术上讲,文件是C\nV\nEH\n等)。但是,当我尝试将这些文件转换为列表,然后使用计数函数时,它会将字母分开,所以像“IRQ”这样的字符串变成了['\n'I','R','Q','\n'],因此当我计算时,我得到了每个单独字母的频率而不是字符串的频率。
以下是我目前编写的代码:
def countf():
fh = open("C:/x.txt","r")
fh2 = open("C:/y.txt","w")
s = []
for line in fh:
s += line
for x in s:
fh2.write("{:<s} - {:<d}".format(x,s.count(x))
我想得到的输出文件应该类似于这样:
C 10
V 32
EH 7
A 1
IRQ 9
H 8
sort yourfile.txt | uniq -c
将给出单词计数(您提到了C:\,因此似乎您在Windows上,sort
和uniq
是标准的Unix命令,如果您安装cygwin或http://unxutils.sourceforge.net/,则可以获得它们)。 - John Cartersort
和uniq
技术上会生成行计数。不确定这是否正确。 - D.Shawley