2016-11-02 1 views
1

C'est le code que je utilise:Tous les éléments de la liste sont écrits dans un fichier

import pandas as pd 
import os 
out = 'E:/my_projects/SWAT_Projects/NLCD2006/OriginalModels/DL_corrected2NotCopy/FutureClimate/' 
devils_p = open(os.path.join(out, 'Devils_P.txt')).readlines() 
FutureClimate = pd.read_csv(os.path.join(out, 'EDMA_1_rcp26_2025_1.dat'),  delimiter = '\t') 
headers = [' ', 'year', 'day', 'tmin', 'tmax', 'pcp'] 
FutureClimate.columns = headers 
df = FutureClimate.drop(FutureClimate.columns[0], axis = 1) 
precip = pd.Series.tolist(df.pcp) 
for i in precip: 
    devils_p.append('%s\n' % i)  
thefile = open(os.path.join(out, 'weather.txt'), 'w') 
for i in devils_p: 
    thefile.write(i) 

longueur finale de devils_p après annexant precip est 33237, mais quand je l'écris dans un fichier txt, le la longueur de sortie est plus petite: environ 32400. Quelle pourrait être une raison pour laquelle le devils_p n'est pas écrit correctement?

EDIT1: si je réduis un nombre d'éléments de 1000 dans la liste devils_p avant d'ajouter precip, tout fonctionne correctement. Donc, probablement, le problème est lié à la longueur maximale d'un fichier liste/.txt?

EDIT2: l'édition précédente était erronée. Après avoir réduit la longueur d'une liste d'origine par 3652 éléments, le fichier .txt de sortie n'est toujours pas correct (se termine plus tôt que prévu).

Répondre

0

Alors, je ne sais pas pourquoi cette erreur se passait, je suppose que quelque chose de mal était avec mon code d'écriture part, mais je résolu mon problème en utilisant savetxt de numpy:

np.savetxt(os.path.join(out, 'weather.txt'), devils_p)