Python中的问题分割

2024-05-16 06:31:07 发布

您现在位置:Python中文网/ 问答频道 /正文

目标是获取“%”之后“--”之前的文本。你知道吗

然而,有时文本会在'--'之前被剪掉,就像在一个随机的字母上一样。为什么不能正常工作?提前谢谢!PS使用Python3.5。你知道吗

if destiny=='fortune':
    fortuneformat= fortune_print.split('%')[-1]
     print (fortuneformat)
    _1_fortuneformat= fortuneformat.split("--")[0]

    fortunesay = str(_1_fortuneformat)

仅供参考:

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()

Tags: thedataindexifrandomopenlengthfile
1条回答
网友
1楼 · 发布于 2024-05-16 06:31:07

为什么不直接用正则表达式来寻找财富呢?你知道吗

s = """%
The NSA knows what you did last summer. But no one, in the NSA or outside it,
knows why they should.

      Shlom%i Fish
      NSA Facts by Shlomi Fish and Friends 
( http://www.shlomifish.org/humour/bits/facts/NSA/ )
% XSLT is the worst thing since non-sliced bread.   Shlomi Fish   
XSLT Facts by Shlomi Fish and Friends ("""

re.findall("(?s)(?<=%).*?(?= )",s)


Out[154]:
['\nThe NSA knows what you did last summer. But no one, in the NSA or outside it,\nknows why they should.\n\n    ',
 'i Fish\n    ',
 ' XSLT is the worst thing since non-sliced bread. ']

https://regex101.com/r/dQ9bD3/1

相关问题 更多 >