如何解决使用`.rstrip`和`.strip删除换行符\\ n
昨天question进行的跟进询问使我能够确定一个新问题(多么美妙!)。
因此,我有这段代码是使用(34354435.0000007,623894584.000006)
将.dat文件从34354435.0000007,623894584.000006
转换为.strip('()\n')
,然后使用.rstrip('\n')
删除尾随换行符,以便将其导入到matplotlib和绘制多边形。代码中的顺序是相反的,但是我认为这无关紧要,因为无论for
循环中的位置如何,都会产生相同的错误;
lang=js
data_easting=[]
data_northing=[]
#Open the poly.dat file (in Python)
Poly = open('poly.dat','r')
#Loop over each line of poly.dat.
for line in Poly.readlines():
line = line.rstrip('\n')
print (line +'_becomes')
line = line.strip('()\n')
print (line)
x,y = line.split(',')
data_easting.append(x)
data_northing.append(y)
import numpy
data_easting = numpy.array(Easting,dtype=float)
data_northing = numpy.array(Northing,dtype=float)
from matplotlib import pyplot
我得到一个Value Error
;
16 line = line.strip('()\n')
17 print (line)
---> 18 x,')
19 data_easting.append(x)
20 data_northing.append(y)
ValueError: not enough values to unpack (expected 2,got 1)
通过print
函数,我发现它正在尝试遍历底部的换行符(因此,当我尝试将数据拆分为x和y时,它在换行符处失败,因为仅换行符有1个值,其中未定义“,”。
...
(331222.6210000003,672917.1531000007)_becomes
331222.6210000003,672917.1531000007
_becomes
-----------------------------------------------
.rstrip
是否不应该删除尾随的换行符?我还尝试了.replace
,并在\r
函数中包含了
和rstrip
,得到的结果是相同的。我的代码无法响应.rstrip
和.strip
的问题是什么?
或者,如果有一种方法可以在最终数据输入处完全跳过或停止循环,那将绕过我认为的问题。
谢谢
受限制的学习者。
解决方法
-
从文件末尾删除多余的空白行。
-
如果在输入中需要多余的空行,则需要检测并忽略它们:
for line in Poly: if line == '\n': continue ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。