求助,为什么我写的这个代码运行不了。是哪里出问题了?

f = open('C:/Users/Administrator/Desktop/yingwen.txt',"r")

all_words = []

for  s  in  f.readlines():

 s = s.replace(","," ").replace("."," ").lower()

 all_words.extend(s.split(" "))

all_words = list(set(all_words))

all_words.sort()

f2 = open('C:\Users\Administrator\Desktop\ying.txt','w')

f2.write("\n".join(all_words))

f2.close()

用来单词汇总排序的代码

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 10

提问,请把报错贴出来,并且代码按格式编辑好。

1年前 评论
huhoo (楼主) 1年前
huhoo (楼主) 1年前

用markdown 语法 这个太难受了

1年前 评论
huhoo (楼主) 1年前

代码格式化一下就行了, 空格语法的问题,如下:


f = open('./yingwen.txt', "r")
all_words = []
for s in f.readlines():
    s = s.replace(",", " ").replace(".", " ").lower()
    all_words.extend(s.split(" "))
all_words = list(set(all_words))
all_words.sort()
f2 = open('./ying.txt', 'w')

f2.write("\n".join(all_words))

f2.close()
1年前 评论

问题报错都提示好了你的文件编码问题,打开文件带上编码试试

10个月前 评论
f = open(r'C:\Users\Administrator\Desktop\yingwen.txt', "r")

all_words = []

for s in f.readlines():
    s = s.replace(",", " ").replace(".", " ").lower()

    all_words.extend(s.split(" "))

    all_words = list(set(all_words))

    all_words.sort()

    f2 = open(r'C:\Users\Administrator\Desktop\ying.txt', 'w')

    f2.write("\n".join(all_words))

    f2.close()
9个月前 评论

windows环境下的路径,一个斜杠被当成转义字符了。 路径前面加个r,或者用2个斜杠 C:\Users\Administrator\Desktop\ying.txt r'C:\Users\Administrator\Desktop\ying.txt'

9个月前 评论

其实一行 shell 代码就能实现了:

tr '[:upper:],. ' '[:lower:]\n' < 'C:/Program Files/Microsoft Visual Studio/2022/Community/Licenses/2052/ThirdPartyNotices.txt' | sort | uniq -dc | sort -rn | head -n 30

结果:

 253687
  62913 the
  39814 of
  34822 or
  29201 to
  26183 and
  21698 copyright
  20660 in
  19115 software
  15120 any
  14643 (c)
  12499 this
  11737 a
  11424 license
  11143 for
  10668 is
   9075 you
   7998 use
   7905 work
   7379 by
   7229 without
   6927 that
   6821 shall
   6449 other
   6371 with
   6364 not
   6245 be
   6030 notice
   5457 including
   5108 as
9个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!