Python发布输出。字符串操作

时间:2014-09-01 16:36:50

标签: python string

我得到了以下代码,但是在输出时(txt文件)它不会返回一个None的值,但是当我将它保存到txt文件时会发生这种情况,当我只是运行程序它会显示我想要的值。

archi2=open('googletabla.txt', 'w')

nicCoor=open("C:\Users\SistBa\PycharmProjects\seguropais\SeguroPais\NIC.txt", "r")
coorNiclines=nicCoor.readlines()

poly = []

for NicaLines0 in coorNiclines: #leyendo las coordenadas de Nicaragua
    if(len(NicaLines0))>5:
        NicLines=re.sub(r'99.000', '',str(NicaLines0))
        NicLines1=re.sub(r' 0.000', '',str(NicLines))
        if NicLines1.isspace()==False :
            line = ','.join(NicLines1.split())
            lista=str(poly.extend(zip(*[iter(map(float, line.split(',')))]*2)))

            archi2.write(lista+'\n')
print poly
archi2.close()

我在python上的输出是:

C:\Python27\python.exe C:/Users/SistBa/PycharmProjects/seguropais/SeguroPais/game
[(14.993, -83.152), (14.959, -83.172), (14.952, -83.2), (14.891, -83.262), (14.762, -83.31), (14.633, -83.283), (14.456, -83.221), (14.333, -83.2), (14.265, -83.214), (14.122, -83.297)...]

处理完成,退出代码为0

但是我的txt文件如下:

None
None
None
None
None
None
None
None...

2 个答案:

答案 0 :(得分:1)

视觉上除了以上回答之外。

这里的问题是extend实际上总是返回None

>>> a.extend('a')
>>> a
['a']

所以把它改成这样的东西:

archi2=open('googletabla.txt', 'w')

nicCoor=open("C:\Users\SistBa\PycharmProjects\seguropais\SeguroPais\NIC.txt", "r")
coorNiclines=nicCoor.readlines()

poly = []

for NicaLines0 in coorNiclines: #leyendo las coordenadas de Nicaragua
    if(len(NicaLines0))>5:
        NicLines=re.sub(r'99.000', '',str(NicaLines0))
        NicLines1=re.sub(r' 0.000', '',str(NicLines))
        if NicLines1.isspace()==False :
            line = ','.join(NicLines1.split())
            new_val = zip(*[iter(map(float, line.split(',')))]*2)
            poly.extend(new_val)
            lista=str(new_val)

            archi2.write(lista+'\n')
print poly
archi2.close()

答案 1 :(得分:0)

您正在对list-method" extend"的结果进行字符串转换,并将其写入。但它返回None,这就是为什么你在输出中最终得到一堆None。

另外,你可能甚至不想要扩展,因为你在每次迭代中都会写,所以对于所有的NicaLines0,你都会写它和前面的所有行。

然后你完全不必要地将NicLines1拆分为再次加入它然后拆分它。只需写下

line = NicLines1.split()

并删除以下行中的line.split(",")。

如果你没有正确地逃避它们,或者使用原始字符串,你会在某些时候遇到使用文件名中反斜杠的麻烦。

而且我不知道你想要的输出是什么,所以我无法建议替换lista-assignment。