Цель состоит в том, чтобы получить текст после «%» и до «-».Разделение проблемы в Python
Однако иногда текст обрезается до '-', как при случайной букве. Почему это работает неправильно? Заранее спасибо! PS с использованием Python 3.5.
if destiny=='fortune':
fortuneformat= fortune_print.split('%')[-1]
print (fortuneformat)
_1_fortuneformat= fortuneformat.split("--")[0]
fortunesay = str(_1_fortuneformat)
FYI:
fortune_print= get_random_fortune('quotes1.txt')
А вот функция используется, чтобы получить состояние.
def get_random_fortune(fortune_file):
"""
Get a random fortune from the specified file. Barfs if the corresponding
``.dat`` file isn't present.byt
:Parameters:
fortune_file : str
path to file containing fortune cookies
:rtype: str
:return: the random fortune
"""
fortune_index_file = fortune_file + '.dat'
if not os.path.exists(fortune_index_file):
print('Can\'t find file "%s"' % fortune_index_file)
fortuneIndex = open(fortune_index_file, 'rb')
data = pickle.load(fortuneIndex)
fortuneIndex.close()
randomRecord = random_int(0, len(data) - 1)
(start, length) = data[randomRecord]
f = open(fortune_file, 'rU')
f.seek(start)
fortuneCookie = f.read(length)
f.close()
return fortuneCookie
Пример вход гадалке из текстового файла, который вносит свой вклад:
%
The NSA knows what you did last summer. But no one, in the NSA or outside it,
knows why they should.
-- Shlomi Fish
-- NSA Facts by Shlomi Fish and Friends (http://www.shlomifish.org/humour/bits/facts/NSA/)
Ожидаемый результат: The NSA knows what you did last summer. But no one, in the NSA or outside it, knows why they should.
Фактический выход: The NSA knows what yo
Я спросил, как маринованный файл. Это делается с pickle.dump в этой функции:
def make_fortune_data_file(fortune_file, quiet=False):
"""
Create or update the data file for a fortune cookie file.
:Parameters:
fortune_file : str
path to file containing fortune cookies
quiet : bool
If ``True``, don't display progress messages
"""
fortune_index_file = fortune_file + '.dat'
if not quiet:
pass
#print ('Updating "%s" from "%s"...' % (fortune_index_file, fortune_file))
data = []
shortest = sys.maxsize
longest = 0
for start, length, fortune in _read_fortunes(open(fortune_file, 'rU')):
data += [(start, length)]
shortest = min(shortest, length)
longest = max(longest, length)
fortuneIndex = open(fortune_index_file,'wb')
pickle.dump(data, fortuneIndex,protocol=4,fix_imports=True)
fortuneIndex.close()
вы можете размещен пример ввода образца, и ожидается выход против фактического выпуска продукции? –
Код выглядит в порядке. Опубликуйте [mcve]. – Kevin
Привет, я добавил образец ввода и ожидаемый результат против фактического вывода. Надеюсь, это облегчит анализ моего сообщения. Огромное спасибо. – stuffatwork190