我是编程新手。 我需要索引三个单独的 TXT 文件。并从输入进行搜索。当我进行打印时,它会给我整个路径名。我想打印 TXT 文件名。
我尝试在函数中使用 OS.list
import os
import time
import string
import os.path
import sys
word_occurrences= {}
def index_text_file (txt_filename,ind_filename, delimiter_chars=",.;:!?"):
try:
txt_fil = open(txt_filename, "r")
fileString = txt_fil.read()
for word in fileString.split():
if word in word_occurrences:
word_occurrences[word] += 1
else:#
word_occurrences [word] = 1
word_keys = word_occurrences.keys()
print ("{} unique words found in".format(len(word_keys)),txt_filename)
word_keys = word_occurrences.keys()
sorted(word_keys)
except IOError as ioe: #if the file can't be opened
sys.stderr.write ("Caught IOError:"+ repr(ioe) + "/n")
sys.exit (1)
index_text_file("/Users/z007881/Documents/ABooks_search/CODE/booksearch/book3.txt","/Users/z007881/Documents/ABooks_search/CODE/booksearch/book3.idx")
语法错误:语法无效(base( 8c85908188d1:CODE z007881$ python3 indexed.py9395 在/Users/z007881/Documents/ABooks_search/CODE/booksearch/book3.t 中找到的唯一单词XT
我想说的是 9395 本书中发现的独特单词3.txt
是在目录分隔符/
上拆分路径并选择最后一个元素:
file_name = txt_filename.split("/")[-1]
# ...
# Then:
print("{} unique words found in".format(len(word_keys)), file_name)
# I would prefer using an fstring, unless your Python version is too old:
print(f"{len(word_keys)} found in {file_name}")
我强烈建议将txt_filename
的名称更改为不那么具有误导性的名称,例如 txt_filepath
,因为它不包含文件名,而是包含整个路径(包括但不限于文件名(。