Python if 语句 - 排除"--"



我正在从netcdf文件中读取数据,我注意到一些字段以"--"的形式写入我的文件。

当我将内容变量打印到控制台时,其值为:[33.9399999151.03918,蒙面,蒙面

我尝试了下面的代码块来检查行是否不包含掩码或"--",并写入这些值。它不起作用!

如何排除或检查这些值?

已尝试:如果内容中没有"屏蔽":outputwriter.writerow(内容)打印内容

更新

       with open(r'C:/output.csv', 'wb') as csvFile:
        outputwriter = csv.writer(csvFile, delimiter=',')
        for date_val in date_strings:
            header.append(date_val)
        outputwriter.writerow(header)
        for lat_index, lat in enumerate(lats):
            for lon_index, lon in enumerate(lons):
                content = [lat,lon]
                for time_index, time in enumerate(times[:]): 
                    data = value[time_index,lat_index,lon_index]
                    content.append(data)
                #outputwriter.writerow(content) 
                temp = content
                contentVal = (set(temp)-set(exclude))
                for item in contentVal:
                    outputwriter.writerow(item)
                    print item

更新2

from netCDF4 import Dataset, num2date
import csv
filename = "C:/netcdf.nc"
nc = Dataset(filename, 'r', Format='NETCDF4')
lats = nc.variables['latitude'][:] 
lons = nc.variables['longitude'][:]
sfc = nc.variables['Min_SFC'][:]
times = nc.variables['time']
dates = num2date(times[:],times.units)
date_strings = [date.strftime('%d-%m-%Y') for date in dates]
header =  ['Latitude', 'Longitude']
exclude = ['masked','--']
with open(r'C:/output.csv', 'wb') as csvFile:
    outputwriter = csv.writer(csvFile, delimiter=',')
    for date_val in date_strings:
        header.append(date_val)
    outputwriter.writerow(header)
    for lat_index, lat in enumerate(lats):
        for lon_index, lon in enumerate(lons):
            content = [lat,lon]
            for time_index, time in enumerate(times[:]): 
                data = sfc[time_index,lat_index,lon_index]
                content.append(data) 
            contentVal = (set(content)-set(exclude))
            print "Content Val"
            print contentVal
            print "Content"
            print content
            outputwriter.writerow(contentVal)

您需要使用for循环。

for i in content:
    if i != "masked" or i != "--":
        outputwriter.writerow(i)
        print i

我从未使用过outputwriter,尽管如果您的项目在列表中,则可以制作另一个列表来排除值:

l = [-33.939999, 151.03918, '--', 'masked', 'masked']
x = ['masked','--']
content = (set(l)-set(x))
for item in content:
    outputwriter.writerow(item)
    print item

输出:

151.03918
-33.939999

最新更新