【发布时间】:2019-07-25 01:09:25
【问题描述】:
我有一个将 nc 文件的一部分转换为 csv 文件的脚本。脚本本身可以工作,但问题是我需要指定确切的目录,包括文件名和输出 csv。我有兴趣为文件夹 test1 中的所有 nc 文件运行脚本,并将其转换为文件夹 test2 中同名的 csv。我尝试修改脚本,但没有奏效。这是我的脚本。
import netCDF4
from netCDF4 import num2date, date2num, date2index
import pandas as pd
import numpy as np
import netCDF4
import sys
import os
path = r"C:\\Users\\chz08006\\Documents\\test1"
for filename in os.listdir(path):
netcdf_file = r"C:\\Users\\chz08006\\Documents\\test1\\"+filename
csv_file = r"C:\\Users\\chz08006\\Documents\\test2\\"+filename
f = netCDF4.Dataset(netcdf_file)
ssha = f.variables["ssha"]
lon = f.variables['lon']
lat = f.variables['lat']
#time = f.variables['time']
timedim = ssha.dimensions[0]
times = f.variables[timedim]
dates = num2date(times[:], times.units)
dates = [date.strftime('%Y-%m-%d %H:%M:%S') for date in dates]
lon_list= list(lon)
lat_list = list(lat)
ssha_list = list(ssha)
lon_list = [x-360 if x>= 180 else x for x in lon_list]
df = pd.DataFrame({'Time':dates,'Longitude':lon_list,'Latitude':lat_list,'SSHA':ssha_list})
df.to_csv(csv_file)
我修改脚本失败的尝试是
path = r"C:\\Users\\chz08006\\Documents\\test1"
for filename in os.listdir(path):
netcdf_file = r"C:\\Users\\chz08006\\Documents\\test1\\"+filename
csv_file = r"C:\\Users\\chz08006\\Documents\\test2\\"+filename
以前应该是
netcdf_file = r"C:\\Users\\chz08006\\Documents\\test1\\example1.nc"
csv_file = r"C:\\Users\\chz08006\\Documents\\test2\\exampleresult.csv"
其中 example1 是 nc 文件名,exampleresult 是 csv 文件名。
【问题讨论】:
-
您的编码是否正确缩进?因为似乎不在您上面发布的代码中。
-
请发布错误。
-
对不起,我缩进了。错误是它只会为目录中的第一个文件而不是其他文件创建一个 csv。
-
df.to_csv(csv_file) 也必须缩进,是吗?
-
我想通了!我所要做的就是将 +".csv" 添加到 csv_file 行的末尾。
标签: python python-3.x pandas dataframe ncdf4