#python-3.x #string-formatting
#python-3.x #форматирование строки
Вопрос:
Я новичок в программировании. мне нужно проиндексировать три отдельных текстовых файла. И выполните поиск из ввода. Когда я выполняю печать, он выдает мне полное имя пути. я хотел бы напечатать имя файла txt.
я пытаюсь использовать ОС.список в функции
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")
Ошибка синтаксиса: недопустимый синтаксис
(базовый) 8c85908188d1: КОД z007881 $ python3 indexed.py
9395 уникальных слов найдено в /Users/z007881/Documents/ABooks_search/CODE/booksearch/book3.t
xt
я бы хотел, чтобы в нем было указано 9395 уникальных слов, найденных в book3.txt
Комментарии:
1. Не могли бы вы отформатировать свой код, пожалуйста? Выделите все это и нажмите
CTRL K
Ответ №1:
Один из способов сделать это — разделить путь на разделителе каталогов /
и выбрать последний элемент:
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
, поскольку оно содержит не имя файла, а весь путь (включая, но не ограничиваясь, именем файла).).
Комментарии:
1. Скобки в строке вопроса
format
выглядят для меня нормально. Однако вы переместили скобки, и строка, которую вы здесь представляете, будетfile_name
полностью проигнорирована.2. О, вы правы. Я не знаю, о чем я думал.