Python3.8.10
我正在創建幾個 csv 檔案,每行中的專案數量不同。它們將在情節中使用。稍后使用 csv.writerow(headers) 添加標題。每行中的第一項是日期字串,該行中的其余專案是 0(int 零),其零個數取決于我創建的 csv。我嘗試了 list.append 和 list.extend,但它們沒有將零添加到同一行。我嘗試創建一個迭代器,但無法正確處理。使用熊貓或其他東西可能有更好的方法,但我沒有那么有經驗。輸出應如下所示:
2022-01-09 18:08:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2022-01-09 18:13:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2022-01-09 18:18:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2022-01-09 18:23:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2022-01-09 18:28:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2022-01-09 18:33:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2022-01-09 18:38:18,0,0,0,0,0,0,0,0,0,0,0,0,0,0
謝謝。
def daterange(start_date, end_date,period):
# create dates every period for date range.
deltaT = timedelta(seconds=period)
while start_date < end_date:
yield start_date
start_date = deltaT
def createData(hourIncrement=24,period=30,count=2282):
#creates data for specified number of hours
end_date = datetime.now()
start_date = end_date - timedelta(hours=hourIncrement)
csvData=[]
for single_date in daterange(start_date, end_date, period):
csvData.append[single_date.strftime("%Y-%m-%d %H:%M:%S"),(0 for n in range(0,count))]
listCount=len(csvData)
logger.debug('Create CSV data count: ' str(listCount))
return csvData
這有效,但不是很pythonic ...
end_date = datetime.now()
start_date = end_date - timedelta(hours=hourIncrement)
x=0
csvData=[]
list1=[0]*(count-1)
for single_date in daterange(start_date, end_date, period):
list0=[]
list0=[single_date.strftime("%Y-%m-%d %H:%M:%S")]
for i in list1:
list0.append(i)
csvData.append(list0)
listCount=len(csvData)
logger.debug('Create CSV data count: ' str(listCount))
return csvData
uj5u.com熱心網友回復:
這是該代碼的更 Pythonic 版本:
from datetime import datetime, timedelta
def daterange(start_date, end_date, period):
# create dates every period for date range.
while start_date < end_date:
yield start_date
start_date = timedelta(seconds=period)
def createData(hourIncrement=24, period=30, count=2282):
# creates data for specified number of hours
start = datetime.now() - timedelta(hours=hourIncrement)
end = datetime.now()
return [[x.strftime(
"%Y-%m-%d %H:%M:%S")] [0] * (count-1) for x in daterange(start, end, period)]
print(createData(24, 8000, 5))
->
[
['2022-01-09 22:55:06', 0, 0, 0, 0],
['2022-01-10 01:08:26', 0, 0, 0, 0],
['2022-01-10 03:21:46', 0, 0, 0, 0],
['2022-01-10 05:35:06', 0, 0, 0, 0],
['2022-01-10 07:48:26', 0, 0, 0, 0],
['2022-01-10 10:01:46', 0, 0, 0, 0],
['2022-01-10 12:15:06', 0, 0, 0, 0],
['2022-01-10 14:28:26', 0, 0, 0, 0],
['2022-01-10 16:41:46', 0, 0, 0, 0],
['2022-01-10 18:55:06', 0, 0, 0, 0],
['2022-01-10 21:08:26', 0, 0, 0, 0]
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/410002.html
標籤:
上一篇:合并單個csv后顯示所有檔案的值
下一篇:一起列印散列CSV輸出RUBY
