我想分离一个ASCII文件的最后一列,并将其添加到另一个ASCII文件的末尾。到目前为止,我做了下面的代码,我期待它能工作。如果有人能帮助我找出错误所在,我将不胜感激。在
import os,sys,csv
filename = 'E:\AirborneLidarData\IntensFirst\325115401.asc'
outfilename = 'E:\AirborneLidarData\LaserFirst\325115401.asc'
csv_out = csv.writer(open(outfilename, 'w'), delimiter=' ')
f = open(filename,'r')
for line in f:
vals = line.split('\t')
for item in csv_out:
csv_out.writerow(item.strip() , vals[3])
下面是两个数据集的5行示例。在
填充:
^{pr2}$输出文件:
32511999.00 5401190.00 313.98
32511999.50 5401190.00 313.98
32511998.50 5401190.50 314.10
32511999.00 5401190.50 314.04
32511999.50 5401190.50 313.99
您需要首先遍历两个输入文件,合并行,然后写入一个临时文件。然后将临时文件移回预期的输出文件。实际上并没有CSV数据,而是使用任意数量的空格作为分隔符的数据。您需要手动处理,但我们将使用csv模块写出:
上面的代码打开
outfilename
进行读写(模式r+b
),以方便临时文件内容的复制。我假设filename
和outfilename
具有相同的行数;如果它们没有,则任何文件中的额外行都将被忽略。您可以使用itertools.izip_longest()
,但是您必须想出一个策略来决定在这种情况下要为丢失的行填充什么。在您还需要避免在文件名中使用
^{pr2}$\123
转义序列。使用正斜杠、原始字符串或双反斜杠:或者
或者
^{4}$将所有的工作,因为它们避免反斜杠被解释为转义序列。在
相关问题 更多 >
编程相关推荐