首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Reportlab多行

Python Reportlab多行
EN

Stack Overflow用户
提问于 2015-05-18 14:52:54
回答 1查看 2K关注 0票数 1

我正在尝试将我的磁盘状态写成pdf。问题是,它不能写多行:每个字母的文本垂直。

代码语言:javascript
复制
import subprocess
from reportlab.pdfgen import canvas

p = subprocess.Popen('df -h', stdout=subprocess.PIPE, shell=True)
(disk, err) = p.communicate()
print disk

def hello(disk):
            height= 700
            c = canvas.Canvas("diskreport.pdf")
            c.drawString(200,800,"Diskreport")
            for line in disk:
                    c.drawString(100,height,line.strip()) 
                    height = height - 25
            c.showPage()
            c.save()
hello(disk)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-27 09:49:57

您不是遍历数据中的行,而是遍历字符。例如:

代码语言:javascript
复制
>>> data="""a
... b
... line 3"""
>>> # this will print each character (as in your code)
... for line in data: print line
... 
a


b


l
i
n
e

3
>>> 
>>> # split into lines instead
... for line in data.split('\n'): print line
... 
a
b
line 3
>>>

因此,在您的代码中添加了.split('\n') to yourfor``-循环来生成以下内容:

代码语言:javascript
复制
for line in disk.split('\n'):
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30306446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档