【发布时间】:2016-03-30 21:30:22
【问题描述】:
我正在尝试从文本文件中读取行,但是我在尝试访问这些行时遇到了困难,或者我认为是这样。
import sys
import math
import re
CANVAS_HEIGHT = 500
CANVAS_WIDTH = 500
SVG_HEADER = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="%d" height="%d">\n'
SVG_BOUNDING_BOX = '<rect x="0" y="0" width="%d" height="%d" style="stroke:#000;fill:none" />\n'
SVG_LINE = '<line x1="%d" y1="%d" x2="%d" y2="%d" style="stroke:#000" />\n'
SVG_FOOTER = '</svg>'
print SVG_HEADER % (CANVAS_WIDTH, CANVAS_HEIGHT)
print SVG_BOUNDING_BOX % (CANVAS_WIDTH, CANVAS_HEIGHT)
try:
line_number = 0
for S in sys.stdin:
line_number = line_number + 1
L = S.split()
try:
x0 = float(L[1])
y0 = float(L[2])
x1 = float(L[3])
x1 = float(L[4])
except:
sys.stderr.write('Error in line %d: %s\n' % (line_number, S))
print SVG_LINE, x0, y0, x1, y1
except:
sys.stderr.write('Cannot open: %s\n' % sys.argv[1])
print '%s\n' % (SVG_FOOTER)
在终端,我卡在了
对于 sys.stdin 中的 S:
如果您想知道,这段代码的目的是取行并将它们转换为 svg 格式。所有的 sys.stderr.write 只是我教授的规范。
我正在阅读的台词就像
"行 0.0 1.0 2.0 3.0"
很多次。
【问题讨论】:
-
请edit该问题为您正在使用的编程语言添加标签并删除当前标签,所有这些似乎都很笼统,但对其他人找到您的问题没有帮助。
-
你如何调用你的程序?
-
python lines_to_svg.py lines_files.txt
-
该语法不会将
lines_files.txt连接到程序的标准输入,因此您的for循环从终端读取。