Python 为什么输出csv文件不显示预期结果?

Python 为什么输出csv文件不显示预期结果?,python,csv,Python,Csv,为什么输出csv文件只包含最后几天的数据,而当我刚刚将变量x打印到屏幕上时,它包含整个月的数据?编辑: 在我看来,您试图实现的目标(基本上是连接所有文件?)是这样的: 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/Pyt

为什么输出csv文件只包含最后几天的数据,而当我刚刚将变量x打印到屏幕上时,它包含整个月的数据?

编辑:

在我看来,您试图实现的目标(基本上是连接所有文件?)是这样的:

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文件可能更好,但不必将所有内容聚合到临时列表中:

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)

谢谢,这确实解决了问题。但是,当我将语句移到for语句的开头或之前时,它会导致输出顺序完全混乱,我不明白为什么会这样?@C.Deakin我不确定我是否理解您的问题-您是否试图基本上连接csv文件?我更新了答案以反映这一点。。。
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])