как мне манипулировать именем пути, чтобы оно не выводило полное имя - PullRequest
2 голосов
/ 11 апреля 2019

Я новичок в программировании. Мне нужно проиндексировать три отдельных файла 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")

SyntaxError: неверный синтаксис (базовый) 8c85908188d1: КОД z007881 $ python3 indexed.py 9395 уникальных слов найдено в /Users/z007881/Documents/ABooks_search/CODE/booksearch/book3.t х

я бы хотел сказать 9395 уникальных слов, найденных в book3.txt

1 Ответ

0 голосов
/ 11 апреля 2019

Один из способов сделать это - разделить путь на разделителе каталогов / и выбрать последний элемент:

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, так как он содержит не имя файла, а полный путь (включая, но не ограничиваясь именем файла).

...