在python中逐行读取字符串

Cal*_*ton 6 python string

我有以下生成的字符串,tkinter然后使用以下方法读取textEntry.get():

"
=========New Coffee Order===============
=========Bean Information===============
Type: Ethiopian
Origin: Single

=========Roaster/price==================
Steve's Beans
8.50/lb

Everyday Espresso
10.00/lb

Critical Coffee 
6.00/lb


=========End Coffee Order==============
"
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用fpdf生成此信息的pdf文件,该文件遵循格式指南.我的问题是:

如何告诉python以解释每一行的方式读取字符串而不仅仅是一个字符列表?

我最初的想法是告诉python逐行读取这个字符串并为每行分配值.然而,这似乎效率低下,有没有更好的方法来做到这一点?

谢谢.

Rob*_*obᵩ 10

str.splitlines() 将单个多行字符串转换为单行字符串列表.

引用文档:

返回字符串中的行列表,在行边界处断开.此方法使用通用换行方法来分割线.

lines = text.splitlines()
Run Code Online (Sandbox Code Playgroud)


cs9*_*s95 9

str.split('\n') 会做的伎俩:

In [135]: text.split('\n')
Out[135]: 
['"',
 '=========New Coffee Order===============',
 '=========Bean Information===============',
 'Type: Ethiopian',
 'Origin: Single',
 '',
 '=========Roaster/price==================',
 "Steve's Beans",
 '8.50/lb',
 '',
 'Everyday Espresso',
 '10.00/lb',
 '',
 'Critical Coffee ',
 '6.00/lb',
 '',
 '',
 '=========End Coffee Order==============',
 '"']
Run Code Online (Sandbox Code Playgroud)

您需要做的就是逐行遍历返回的列表:

for line in text.split('\n'):
    ...
Run Code Online (Sandbox Code Playgroud)

比较@Robᵩ和我的解决方案:

In [137]: %timeit text.splitlines()
1000000 loops, best of 3: 1.8 µs per loop

In [138]: %timeit text.split('\n')
1000000 loops, best of 3: 1.31 µs per loop
Run Code Online (Sandbox Code Playgroud)