输入:.txt文件包含许多行&$ 39; $ GPGSV,1,1,01,01 ,,, 26 * 7D'
输出:26
import subprocess
import csv
from string import split
f = open('GPS_SNR.csv', 'wb')
while True:
with open('EMNA_GPS.txt', 'r') as g:
for line in g:
tempstr = line.split(',')[7]
GPSstr = tempstr.split('*')[0]
print GPSstr
GPS = float(GPSstr)
print type(GPS)
wr = csv.writer(f, dialect = 'excel')
wr.writerow([GPS])
g.close()
发生了什么: 无限循环永远不会停止...让我们说文件中有100行;然而,有数千行写入.csv而不是100行。
我应该使用' if = EOF'声明?
答案 0 :(得分:0)
主要问题是不必要的while循环。您遍历文本文件中的行,因此您不需要它。
import csv
from string import split
f = open('GPS_SNR.csv', 'wb')
with open('EMNA_GPS.txt', 'r') as g:
for line in g:
tempstr = line.split(',')[7]
GPSstr = tempstr.split('*')[0]
GPS = float(GPSstr)
wr = csv.writer(f, dialect = 'excel')
wr.writerow([GPS])
答案 1 :(得分:0)
for
循环将迭代文件中的每一行。
Python会自动检查文件结尾并为您关闭文件(使用with open
语法)。
import csv
with open('EMNA_GPS.txt', 'r') as g, open('GPS_SNR.csv', 'wb') as f:
wr = csv.writer(f, dialect = 'excel')
for line in g:
tempstr = line.split(',')[7]
GPSstr = tempstr.split('*')[0]
print GPSstr
GPS = float(GPSstr)
print type(GPS)
wr.writerow([GPS])