CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Manipulation de fichier.txt

Dasadi
Dasadi
Niveau 9
27 février 2016 à 19:27:36

Bonsoir à tous,

J'ai déjà sollicité votre aide il y a un mois de cela et elle m'a été d'un grand secours, aussi je me permets de revenir vers vous.

Je suis actuellement dans un projet de recherche qui implique, au moins pour commencer, beaucoup de programmation python, langage -et c'est assez vrai pour la toute la programmation- dont certaines subtilités m'échappent.

J'ai programmé un instrument pour qu'il me prenne des mesures et qu'il les stockent dans un fichier .txt.
Je dois ensuite faire des opérations sur ces mesures.
Je charge donc ce fichier à l'aide de la commande "loadtxt(Chemin de mon fichier)".
Il m'ouvre ce fichier de mesures sous forme d'un tableau.

J'aimerai faire 2 choses avec ces mesures.
D'abord, additionner les valeurs 2 à 2.
Je m'explique avec un exemple, le tableau qui sort est sous cette forme :

[[D1,Hg1,Vg1,date]
[D2,Hd1,Vd1,date]
[D3,Hg2,Vg2,date]
[D4,Hd2,Vd2,date]
...]]
Ce que je veux c'est faire (D1+D2)/2, (D3+D4)/2, (D4+D5)/2, ... de même avec les valeurs de Hg, Vg, Hd et Vd : (Hg1+Hd1)/2, (Vg1+Vd1)/2, ...
J'avais pensé à travailler sur les indices avec une boucle du type :
i=0
for i in range (len(tableau-1)) :
(tableau[:,i]+tableau[:,i+1])/2
i=i+1

Mais ca pose deux problèmes, déjà ca ne correspond pas à ce que je veux faire puisque j'obtiens logiquement ca : (D1+D2)/2, (D2+D3)/2, ... et de toutes manières j'ai finalement un problème d'indice.

Existe t-il une fonction qui me permettrait de faire ce que je veux faire ? (c'est à dire finalement travailler sur des lignes de façon un peu plus fine).

L'autre chose que je veux faire c'est découper mon fichier texte selon la date et l'heure qui est renseignée, toutes les 15 minutes, j'avoue que je n'ai pas du tout cherché pour l'instant mais je profite du premier problème pour vous le demander, je vais bien sûr réfléchir.

Depuis la dernière fois je me suis bien amélioré mais j'en encore du mal à transcrire ce que je veux faire en code, la logique m'échappe souvent.

D'avance, merci de votre aide !

guitarre
guitarre
Niveau 8
27 février 2016 à 20:03:35

tu peux utiliser un fichier excel (avec un lib qui va bien) tu auras acces aux cases individuellement etcc..

Dasadi
Dasadi
Niveau 9
27 février 2016 à 20:48:35

Tu veux dire utiliser excel plutôt que Python ?

Mmh ca m'ennuie, les scripts Python font partis des livrables à fournir en fin de projet, j'ai peur qu'on me reproche d'utiliser excel :-(

Une autre idée :question:

LGV
LGV
Niveau 28
27 février 2016 à 21:05:12

Si chaque entree correspond a 4 valeurs dans ton tableau, tu peux simplement changer ta boucle :
- en travaillant sur les indices, mais en faisant varier l'index de ta boucle de 8 en 8
- en travaillant sur les entrees, en faisant ton index de 2 en 2 mais en calculant ton offset dans le tableau en consequence (index*4+0), (index*4+1), etc.
Pour acceder, dans les deux cas, a des couples de donnees

Apres c'est assez "crade" et c'est un peu "magique" ; ca marche car si tu sais comment sont formattees les donnees. Perso je recommenderais de mieux formatter les donnees a la base (xml, json, etc.) et utiliser des structures de donnees qui refletent tes mesures pour que cela soit plus "intuitif", et plus facile a lire et maintenir

Message édité le 27 février 2016 à 21:06:03 par LGV
guitarre
guitarre
Niveau 8
27 février 2016 à 22:09:20

Le 27 février 2016 à 20:48:35 Dasadi a écrit :
Tu veux dire utiliser excel plutôt que Python ?

Juste pour le format du fichier, ça permettrait de faire des truc du genre:

sheet['A3'].value = sheet['A1'] + sheet['A2']

Dasadi
Dasadi
Niveau 9
27 février 2016 à 22:52:41

LGV

MP
CiterBlacklisterAlerte27 février 2016 à 21:05:12
Si chaque entree correspond a 4 valeurs dans ton tableau, tu peux simplement changer ta boucle :
- en travaillant sur les indices, mais en faisant varier l'index de ta boucle de 8 en 8
- en travaillant sur les entrees, en faisant ton index de 2 en 2 mais en calculant ton offset dans le tableau en consequence (index*4+0), (index*4+1), etc.
Pour acceder, dans les deux cas, a des couples de donnees

Apres c'est assez "crade" et c'est un peu "magique" ; ca marche car si tu sais comment sont formattees les donnees. Perso je recommenderais de mieux formatter les donnees a la base (xml, json, etc.) et utiliser des structures de donnees qui refletent tes mesures pour que cela soit plus "intuitif", et plus facile a lire et maintenir

Message édité le 27 février 2016 à 21:06:03 par LGV

https://image.noelshack.com/fichiers/2016/03/1453305884-smallcapsule136x102.png
http://store.steampowered.com/app/434270

Ok ca marche, je vais tester comme ca demain !

guitarre

guitarre
MP
CiterBlacklisterAlerte27 février 2016 à 22:09:20
Le 27 février 2016 à 20:48:35 Dasadi a écrit :
Tu veux dire utiliser excel plutôt que Python ?
Juste pour le format du fichier, ça permettrait de faire des truc du genre:

sheet['A3'].value = sheet['A1'] + sheet['A2']

Et cette méthode est applicable plusieurs milliers de données sans avoir à tout taper à la main :question:

guitarre
guitarre
Niveau 8
27 février 2016 à 23:15:05

vu que les coordonnées de la case sont une chaine de caractères ça peut se construire via une boucle oui

dark_drow
dark_drow
Niveau 15
27 février 2016 à 23:55:19

mea culpa, j'avais du temps à perdre, je pense que tu peux t'inspirer de ça si tu veux une alternative avec les boucle FOR et des index http://pastebin.com/dw98vLJQ

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment