Bonjour,
Je cherche à dupliquer un objet csv.reader retourné par csv.DictReader(), en utilisant copy.deepcopy() sans succès.
Impossible de trouver une piste
D'avance merci de votre aide

20190722-ChargeCsvDeepCopy.py :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
# Python 3.7.4
import csv, copy
 
chemFic = 'CAC_2019-06-28_ALL_MIN-0005 - Partiel.csv'
with open(chemFic, newline='') as csvfile:
    dr = csv.DictReader(csvfile, delimiter=';')
    for row in dr:
        print(row)
        break
    reader = copy.deepcopy(dr)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>py 20190722-ChargeCsvDeepCopy.py
 
OrderedDict([('DATE', '2019-06-28'), ('TIME', '00:00'), ('OPEN', '5501.9'), ('HIGH', '5507.4'), ('LOW', '5501.9'), ('CLOSE', '5504.5')])
 
Traceback (most recent call last):
  File "20190722-ChargeCsvDeepCopy.py", line 10, in <module>
    reader = copy.deepcopy(dr)
  File "C:\Users\ericg\AppData\Local\Programs\Python\Python37\lib\copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "C:\Users\ericg\AppData\Local\Programs\Python\Python37\lib\copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "C:\Users\ericg\AppData\Local\Programs\Python\Python37\lib\copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "C:\Users\ericg\AppData\Local\Programs\Python\Python37\lib\copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "C:\Users\ericg\AppData\Local\Programs\Python\Python37\lib\copy.py", line 169, in deepcopy
    rv = reductor(4)
TypeError: can't pickle _csv.reader objects