在python中逐行读取字符串

新手上路,请多包涵

我有以下使用 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 逐行读取这个字符串并为每一行赋值。然而,这似乎可能效率低下,有没有更好的方法来做到这一点?

谢谢你。

原文由 Calvin Ellington 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 736
2 个回答

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

原文由 cs95 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

引用文档:

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

 lines = text.splitlines()

原文由 Robᵩ 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题