0
votes

Comment ajouter une sortie à un fichier txt après chaque 4ème élément de ce fichier

Je suis désolé mais je suis nouveau dans Python et j'ai un fichier qui ont des données comme celle-ci xxx

Je voudrais apporter un certain nombre après chaque w. Donc, fondamentalement après chaque 4ème élément du fichier TXT.

existe-t-il des recommandations s'il vous plaît? Merci beaucoup

Mise à jour: les données qui se trouvent dans le fichier TXT sont toutes des chaînes. J'ai été capable de les convertir xxx

la partie ajoutée n'a pas fonctionné encore.


3 commentaires

Vous devez utiliser Python Slice Notation Notation [Démarrer: Stop: étape].


Comment pouvez-vous convertir des valeurs telles que "x1" dans un flotteur


@ user6461080 valeurs = [flotteur (V) pour V dans TMP]


3 Réponses :


0
votes

Quick et sale si vous ne savez pas tout à fait que les éléments W sont là comme si vous dites qu'ils pourraient être. "Data" est le fichier dans lequel vous lisez. J'ai supposé que vos données sont lues dans l'endroit où chaque ligne est comme le format que vous avez dit. Nous avons divisé la ligne sur le blancheur par défaut et nous obtenons des représentations de la ligne. Nous iTerons ensuite à travers chaque tableau et remplacons l'ancien mot avec le nouveau mot où nous trouvons une correspondance.

Remarque: les chaînes sont immuables, il est donc préférable d'utiliser un moyen d'être énuméré pour remplacer réellement le mot dans le tableau avec le nouveau mot . P>

  with open("data", "r") as f:
       tot_lines = [line.split() for line in f]
       for line in tot_lines:
           for key, word in enumerate(line):
               if word[0] == "w":
                   line[key] = word + str(9999)
       print(tot_lines)


1 commentaires

Cela n'a pas fonctionné, pouvez-vous regarder les mises à jour sur le poste même s'il vous plaît?



1
votes

Vous devez d'abord lire ce fichier dans un tableau, insérer des éléments et le sauvegarder (en supposant que le nom de votre fichier texte est nom de fichier ): xxx

Exemple: xxx

sortie xxx


3 commentaires

Cela n'a pas fonctionné, pouvez-vous regarder les mises à jour s'il vous plaît?


@Semsemelgourany Quel est le problème / l'erreur? Votre mise à jour est la même que ce post (fichier de lecture différent, ce que je ne suis pas sûr, pourquoi cela ne fonctionne plus, vous auriez besoin de poster des erreurs). Néanmoins, ajoutez a = np.array (valeurs) avant l'insertion et cela devrait fonctionner.


Oh et la dernière ligne devrait être si telle np.savetxt ("test.txt", a) . Vous devez remplacer le nom du fichier avec votre nom de fichier actuel



0
votes

Votre problème est votre question. Tout d'abord, vous dites:

J'ai un fichier qui ont des données comme celle-ci p> blockquote> xxx pré>

mais dans votre code, vous faites: divisé ("") code> de sorte que vos données ressemblent vraiment à: p> xxx PRE>

Et vous voulez que vos données ressemblent à: p> xxx pré>

où les valeurs vn code> proviennent de: p> xxx pré>

que nous notons n'est pas valide Python Syntaxe afin que votre code posté ne fonctionne pas réellement. La petite quantité de données semble également étrange pour une entrée multiligne mais allons-y. Nous examinons cinq séries de quatre éléments de données ou 20 numéros par ligne comme entrée. Par exemple, si nous avions un fichier de cinq lignes, nous verrions quelque chose comme: p> xxx pré>

La partie ajoutée n'a pas fonctionné encore. P> BlockQuote>

C'est bien comme Awnkining n'est vraiment pas la bonne façon d'aller ici. Pour insérer nos nouvelles données, à l'aide de Python Sans Numpy, je ferais quelque chose comme: p> xxx pré>

(l'index math index * 5 - 1 code> est délicat lorsque les index de la matrice changent alors que nous ajoutons chaque nouvel élément.) Avec la sortie résultante: P>

> cat revised.txt 
47,18,96,31,1,48,33,64,21,1,92,35,78,62,2,56,23,25,47,23,35,9,15,9,1
34,38,64,72,1,66,69,18,57,1,92,3,58,17,2,96,19,53,63,23,97,86,24,41,1
2,52,22,59,1,27,58,82,45,1,90,24,26,51,2,47,43,17,14,23,8,54,4,58,1
13,99,78,61,1,99,8,65,10,1,62,56,91,66,2,45,18,41,50,23,75,95,62,80,1
48,30,18,46,1,93,82,25,15,1,93,1,45,88,2,22,97,54,47,23,54,64,16,91,1
>


0 commentaires