few parts of the code:
def daysList(adate) :
from datetime import date, timedelta
from_y = int(adate[0][0:4])
from_m = int(adate[0][4:6])
from_d = int(adate[0][6:])
to_y = int(adate[1][0:4])
to_m = int(adate[1][4:6])
to_d = int(adate[1][6:])
to_date = date(to_y,to_m,to_d)
from_date = date(from_y,from_m,from_d)
days = (to_date-from_date).days
dateList = []
for d in range(0,days 1) :
n_date = str(from_date timedelta(days=d))
dateList.append(n_date.split("-"))
return dateList
outfile = f'Stations{daysList}.csv'
with open(options.outfile, 'w') as ofile:
for row in DB:
ofile.write('%s\n' % ','.join(row))
The error that I am getting:
OSError: [Errno 22] Invalid argument: 'Stations<function daysList at 0x000001F4E4BBC430>.csv'
CodePudding user response:
Note that in this line:
outfile = f'Stations{daysList}.csv'
You're not using the output of daysList for some argument; you're using daysList itself, the function. The code you've provided is incomplete (What is options? What do you intend to pass as an argument to daysList?) but I'd start there.
CodePudding user response:
When you open (create) a file you must pass a string as filename. However, the variable outfile that contains such variable is not correctly formed because dayslist does not seems to be directly printable. I suggest you to write it this way:
days = daysList(adate)
start = days[0]
end = days[-1]
outfile = f'Stations{start}-{end}.csv'
If you prefer you can write it inline:
outfile = f'Stations{days[0]}-{days[-1]}.csv'
