我使用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==============
"
我正在尝试使用fpdf生成此信息的pdf文件,该文件遵循格式指南。我的问题是:
如何告诉python以解释每一行的方式读取字符串而不仅仅是一个字符列表?
我最初的想法是告诉python逐行读取这个字符串并为每行分配值。然而,这似乎效率低下,有没有更好的方法来做到这一点?
谢谢。
答案 0 :(得分:10)
str.splitlines()
将单个多行字符串转换为单行字符串列表。
引用文档:
返回字符串中的行列表,在行边界处断开。此方法使用通用换行方法来分割线。
lines = text.splitlines()
答案 1 :(得分: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==============',
'"']
您需要做的就是逐行遍历返回的列表:
for line in text.split('\n'):
...
比较@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
答案 2 :(得分:3)
假设行由UNIX换行符分隔,并且文本位于名为text
lines = text.split("\n")
将完成这项工作。然后,您可以遍历列表lines
并对每行执行您需要执行的操作。