2017-03-03 11 views
-1
import glob 
from datetime import date 
import csv 
import numpy as np 
import pandas as pd 
from itertools import islice 
path = 'C:/Users/Calum/AppData/Local/Programs/Python/Python35-32/Python Programs/Brunel Forecasts/November/*.csv' 
for fname in glob.glob(path): 
    with open (fname) as f: 
     readCSV = csv.reader ((islice(f, 24, None)), delimiter = ';') 
     irrad_fore = [] 
     timestamp = [] 
     day = [] 
     month = [] 
     year = [] 
     for row in readCSV: 
      irrad1 = row[4] 
      time = row[3] 
      d = row[2] 
      m = row[1] 
      y = row[0] 

      irrad_fore.append(irrad1) 
      timestamp.append(time) 
      day.append(d) 
      month.append(m) 
      year.append(y) 

      out = csv.writer(open('C:/Users/Calum/AppData/Local/Programs/Python/Python35-32/Python Programs/Brunel Forecasts/forecast_11-2016.csv','w', newline=''), delimiter=';') 
      for values in zip(year, month, day, timestamp, irrad_fore): 
       x = values 
       out.writerow(x) 

出力csvファイルには最終日分のデータのみが含まれているのはなぜですか?変数xを画面に印刷すると、月全体のデータが含まれます。出力csvファイルに期待される結果が表示されないのはなぜですか?

答えて

0

EDIT:CSVファイルを書くことはおそらく良いだろうが、

path = 'C:/Users/Calum/AppData/Local/Programs/Python/Python35-32/Python Programs/Brunel Forecasts/November/*.csv' 

irrad_fore = [] 
timestamp = [] 
day = [] 
month = [] 
year = [] 

for fname in glob.glob(path): 
    with open (fname) as f: 
     readCSV = csv.reader ((islice(f, 24, None)), delimiter = ';') 

     for row in readCSV: 
      irrad1 = row[4] 
      time = row[3] 
      d = row[2] 
      m = row[1] 
      y = row[0] 

      irrad_fore.append(irrad1) 
      timestamp.append(time) 
      day.append(d) 
      month.append(m) 
      year.append(y) 

out = csv.writer(open('C:/Users/Calum/AppData/Local/Programs/Python/Python35-32/Python Programs/Brunel Forecasts/forecast_11-2016.csv','w', newline=''), delimiter=';') 
for values in zip(year, month, day, timestamp, irrad_fore): 
    x = values 
    out.writerow(x) 

何を(?基本的にすべてのファイルを連結)を達成しようとしているが、このようなものであるように私には思えます一時的なリストにすべてを集約せずに直接ファイル:私は最初に以前のステートメントを移動するときしかし、問題を解決しない

path = 'C:/Users/Calum/AppData/Local/Programs/Python/Python35-32/Python Programs/Brunel Forecasts/November/*.csv' 
out = csv.writer(open('C:/Users/Calum/AppData/Local/Programs/Python/Python35-32/Python Programs/Brunel Forecasts/forecast_11-2016.csv','w', newline=''), delimiter=';') 

for fname in glob.glob(path): 
    with open (fname) as f: 
     readCSV = csv.reader ((islice(f, 24, None)), delimiter = ';') 

     for row in readCSV: 
      irrad1 = row[4] 
      time = row[3] 
      d = row[2] 
      m = row[1] 
      y = row[0] 

      out.writerow([y,m,d,time,irrad1]) 
+0

感謝をstatemenためそれは出力の順序を完全に混乱させてしまいますが、それはなぜわかりませんか? –

+0

@ C.Deakin私はあなたの質問を理解したかどうかはわかりません - あなたは基本的にcsvファイルを連結しようとしていますか?私はこれを反映する答えを更新しました... – ewcz

関連する問題