Avec le code suivant, je veux> ouvrir un fichier> lire le contenu et supprimer les lignes non requises> puis écrire les données dans le fichier et également lire le fichier pour les analyses en aval.
with open("chr2_head25.gtf", 'r') as f,\
open('test_output.txt', 'w+') as f2:
for lines in f:
if not lines.startswith('#'):
f2.write(lines)
f2.close()
Maintenant, je veux lire les données f2 et poursuivre le traitement dans pandas ou d'autres modules mais je rencontre un problème lors de la lecture des données (f2
).
data = f2 # doesn't work
print(data) #gives
<_io.TextIOWrapper name='test_output.txt' mode='w+' encoding='UTF-8'>
data = io.StringIO(f2) # doesn't work
# Error message
Traceback (most recent call last):
File "/home/everestial007/PycharmProjects/stitcher/pHASE-Stitcher-Markov/markov_final_test/phase_to_vcf.py", line 64, in <module>
data = io.StringIO(f2)
TypeError: initial_value must be str or None, not _io.TextIOWrapper
Le fichier est déjà fermé (lorsque le bloc with
précédent se termine), vous ne pouvez donc rien faire de plus pour le fichier. Pour rouvrir le fichier, créez-en une autre avec l'instruction et utilisez l'attribut read
pour lire le fichier.
with open('test_output.txt', 'r') as f2:
data = f2.read()
print(data)