Bonjour, je suis un complet debutant en Python, meme si je ne suis pas
completement debutant en programmation. Je travailles principalement avec
Clarion, et utilises Python pour ecrire quelques macros facilitant
l'utilisation de WinCVS avec Clarion.
Je suis en Windows XP, avec Python et PythonWin 2.4
J'aurais bien des questions, mais commencons par la premiere:
J'ai besoin de concatener des fichiers, pour ce faire je copie ligne a
ligne mes "petits" fichiers dans un grand. Jusque la tout va bien, mais !
je m'apercois que quelques longues lignes sont tronconnees, avec le
charactere "pipe" pour marquer que la ligne suivante est la suite de la
premiere. Probleme, c'est du code et ces lignes ne peuvent etre
tronquees...
Comment faire pour eviter cela ?
Si mon code peut aider a la solution :
hugeFile = open (hugeFileName, "w")
for fileName in TXAToCompile:
if (fileName != hugeFileName):
fileInput = open(fileName,"r")
if (fileInput):
for line in fileInput.readlines():
hugeFile.write(line)
fileInput.close()
else:
print fileInput+" does'nt exit, it is skiped"
hugeFile.close ()
Merci d'avance !
PS je sais que je pourrais passer une commande DOS,mais je veux eviter
l'ouverture de la fenetre de commande.....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
atchoum
Si mon code peut aider a la solution :
hugeFile = open (hugeFileName, "w") for fileName in TXAToCompile: if (fileName != hugeFileName): fileInput = open(fileName,"r") if (fileInput): for line in fileInput.readlines(): hugeFile.write(line)
fileInput.close() else: print fileInput+" does'nt exit, it is skiped"
hugeFile.close ()
Pourquoi faire "ligne à ligne". Essaie ceci:
hugeFile = open(hugeFileName, 'w') for filename in TXTAToCompile: if fileName != hugeFileName: try: fileInput = open(fileName) buf = fileInput.read() fileInput.close() hugeFile.write(buf) except: print "%s doesn't exist, skipped' % fileName hugeFile.close()
Si mon code peut aider a la solution :
hugeFile = open (hugeFileName, "w")
for fileName in TXAToCompile:
if (fileName != hugeFileName):
fileInput = open(fileName,"r")
if (fileInput):
for line in fileInput.readlines():
hugeFile.write(line)
fileInput.close()
else:
print fileInput+" does'nt exit, it is skiped"
hugeFile.close ()
Pourquoi faire "ligne à ligne".
Essaie ceci:
hugeFile = open(hugeFileName, 'w')
for filename in TXTAToCompile:
if fileName != hugeFileName:
try:
fileInput = open(fileName)
buf = fileInput.read()
fileInput.close()
hugeFile.write(buf)
except:
print "%s doesn't exist, skipped' % fileName
hugeFile.close()
hugeFile = open (hugeFileName, "w") for fileName in TXAToCompile: if (fileName != hugeFileName): fileInput = open(fileName,"r") if (fileInput): for line in fileInput.readlines(): hugeFile.write(line)
fileInput.close() else: print fileInput+" does'nt exit, it is skiped"
hugeFile.close ()
Pourquoi faire "ligne à ligne". Essaie ceci:
hugeFile = open(hugeFileName, 'w') for filename in TXTAToCompile: if fileName != hugeFileName: try: fileInput = open(fileName) buf = fileInput.read() fileInput.close() hugeFile.write(buf) except: print "%s doesn't exist, skipped' % fileName hugeFile.close()
F. Petitjean
Bonjour, je suis un complet debutant en Python, meme si je ne suis pas completement debutant en programmation. Je travailles principalement avec Clarion, et utilises Python pour ecrire quelques macros facilitant l'utilisation de WinCVS avec Clarion.
Je suis en Windows XP, avec Python et PythonWin 2.4
J'aurais bien des questions, mais commencons par la premiere: J'ai besoin de concatener des fichiers, pour ce faire je copie ligne a ligne mes "petits" fichiers dans un grand. Jusque la tout va bien, mais ! je m'apercois que quelques longues lignes sont tronconnees, avec le charactere "pipe" pour marquer que la ligne suivante est la suite de la premiere. Probleme, c'est du code et ces lignes ne peuvent etre tronquees...
Comment faire pour eviter cela ?
Si mon code peut aider a la solution : S'il vous plaît ne pas utiliser les tabulmtions mais 4 espaces à la
place
hugeFile = open (hugeFileName, "w") # Remplacez "w" par "w+a"
for fileName in TXAToCompile: if (fileName != hugeFileName): fileInput = open(fileName,"r") # if (fileInput): non! vous n'aurez pas un fileInput masi une exception ==> ce test ne sert à rien # for line in fileInput.readlines(): # non! for line in fileInput: # un file est un itérateur (en python >= 2.3) hugeFile.write(line)
fileInput.close() # else: # print fileInput+" does'nt exit, it is skiped"
hugeFile.close ()
Merci d'avance ! PS je sais que je pourrais passer une commande DOS,mais je veux eviter l'ouverture de la fenetre de commande.....
Bernard bref, une solution possible
filenames = [ fn for fn in TXAToCompile if fn != hugeFileName ] hugeFile = open(hugeFileName, "w+a") hfwrite = hugeFile.write for fname in filenames: try: fin = open(fname) # mode 'r' par défaut est très bien for line in fin: hfwrite(line) fin.close() except IOError: print "'%s' doesnot exit, skipped" % (fname,) hugeFile.close()
Vous pouvez aussi vous inspirer de la lecture de shutil.py dans la bibliothèque standard python.
Amicalement
Bonjour, je suis un complet debutant en Python, meme si je ne suis pas
completement debutant en programmation. Je travailles principalement avec
Clarion, et utilises Python pour ecrire quelques macros facilitant
l'utilisation de WinCVS avec Clarion.
Je suis en Windows XP, avec Python et PythonWin 2.4
J'aurais bien des questions, mais commencons par la premiere:
J'ai besoin de concatener des fichiers, pour ce faire je copie ligne a
ligne mes "petits" fichiers dans un grand. Jusque la tout va bien, mais !
je m'apercois que quelques longues lignes sont tronconnees, avec le
charactere "pipe" pour marquer que la ligne suivante est la suite de la
premiere. Probleme, c'est du code et ces lignes ne peuvent etre
tronquees...
Comment faire pour eviter cela ?
Si mon code peut aider a la solution :
S'il vous plaît ne pas utiliser les tabulmtions mais 4 espaces à la
place
hugeFile = open (hugeFileName, "w")
# Remplacez "w" par "w+a"
for fileName in TXAToCompile:
if (fileName != hugeFileName):
fileInput = open(fileName,"r")
# if (fileInput): non! vous n'aurez pas un fileInput masi
une exception ==> ce test ne sert à rien
# for line in fileInput.readlines(): # non!
for line in fileInput: # un file est un itérateur (en
python >= 2.3)
hugeFile.write(line)
fileInput.close()
# else:
# print fileInput+" does'nt exit, it is skiped"
hugeFile.close ()
Merci d'avance !
PS je sais que je pourrais passer une commande DOS,mais je veux eviter
l'ouverture de la fenetre de commande.....
Bernard
bref, une solution possible
filenames = [ fn for fn in TXAToCompile if fn != hugeFileName ]
hugeFile = open(hugeFileName, "w+a")
hfwrite = hugeFile.write
for fname in filenames:
try:
fin = open(fname) # mode 'r' par défaut est très bien
for line in fin:
hfwrite(line)
fin.close()
except IOError:
print "'%s' doesnot exit, skipped" % (fname,)
hugeFile.close()
Vous pouvez aussi vous inspirer de la lecture de shutil.py dans la
bibliothèque standard python.
Bonjour, je suis un complet debutant en Python, meme si je ne suis pas completement debutant en programmation. Je travailles principalement avec Clarion, et utilises Python pour ecrire quelques macros facilitant l'utilisation de WinCVS avec Clarion.
Je suis en Windows XP, avec Python et PythonWin 2.4
J'aurais bien des questions, mais commencons par la premiere: J'ai besoin de concatener des fichiers, pour ce faire je copie ligne a ligne mes "petits" fichiers dans un grand. Jusque la tout va bien, mais ! je m'apercois que quelques longues lignes sont tronconnees, avec le charactere "pipe" pour marquer que la ligne suivante est la suite de la premiere. Probleme, c'est du code et ces lignes ne peuvent etre tronquees...
Comment faire pour eviter cela ?
Si mon code peut aider a la solution : S'il vous plaît ne pas utiliser les tabulmtions mais 4 espaces à la
place
hugeFile = open (hugeFileName, "w") # Remplacez "w" par "w+a"
for fileName in TXAToCompile: if (fileName != hugeFileName): fileInput = open(fileName,"r") # if (fileInput): non! vous n'aurez pas un fileInput masi une exception ==> ce test ne sert à rien # for line in fileInput.readlines(): # non! for line in fileInput: # un file est un itérateur (en python >= 2.3) hugeFile.write(line)
fileInput.close() # else: # print fileInput+" does'nt exit, it is skiped"
hugeFile.close ()
Merci d'avance ! PS je sais que je pourrais passer une commande DOS,mais je veux eviter l'ouverture de la fenetre de commande.....
Bernard bref, une solution possible
filenames = [ fn for fn in TXAToCompile if fn != hugeFileName ] hugeFile = open(hugeFileName, "w+a") hfwrite = hugeFile.write for fname in filenames: try: fin = open(fname) # mode 'r' par défaut est très bien for line in fin: hfwrite(line) fin.close() except IOError: print "'%s' doesnot exit, skipped" % (fname,) hugeFile.close()
Vous pouvez aussi vous inspirer de la lecture de shutil.py dans la bibliothèque standard python.
Amicalement
Do Re Mi chel La Si Do
Bonjour !
Tu peux essayer ça :
hugef=open(hugeFileName,"w") hugef.write(string.join([open(fic,"r").read() for fic in TXAToCompile if fic!=hugeFileName],'')) hugef.close()
ou, plus court :
open(hugeFileName,"w").write(string.join([open(fic,"r").read() for fic in TXAToCompile if fic!=hugeFileName],''))
@-salutations -- Michel Claveau
Bonjour !
Tu peux essayer ça :
hugef=open(hugeFileName,"w")
hugef.write(string.join([open(fic,"r").read() for fic in TXAToCompile if
fic!=hugeFileName],''))
hugef.close()
ou, plus court :
open(hugeFileName,"w").write(string.join([open(fic,"r").read() for fic in
TXAToCompile if fic!=hugeFileName],''))
hugef=open(hugeFileName,"w") hugef.write(string.join([open(fic,"r").read() for fic in TXAToCompile if fic!=hugeFileName],'')) hugef.close()
ou, plus court :
open(hugeFileName,"w").write(string.join([open(fic,"r").read() for fic in TXAToCompile if fic!=hugeFileName],''))
@-salutations -- Michel Claveau
Do Re Mi chel La Si Do
Attention, usenet ne respectant pas les normes NNTP, des lignes ont été fracturées. Le premier script a trois lignes ; le second une seule ligne. Remettre d'aplomb, après un copier/coller.
Bonne journée. -- Michel Claveau
Attention, usenet ne respectant pas les normes NNTP, des lignes ont été
fracturées.
Le premier script a trois lignes ; le second une seule ligne.
Remettre d'aplomb, après un copier/coller.
Attention, usenet ne respectant pas les normes NNTP, des lignes ont été fracturées. Le premier script a trois lignes ; le second une seule ligne. Remettre d'aplomb, après un copier/coller.
Bonne journée. -- Michel Claveau
Laurent Pointal
Bernard Grosperrin wrote:
Bonjour, je suis un complet debutant en Python, meme si je ne suis pas completement debutant en programmation. Je travailles principalement avec Clarion, et utilises Python pour ecrire quelques macros facilitant l'utilisation de WinCVS avec Clarion.
Je suis en Windows XP, avec Python et PythonWin 2.4
J'aurais bien des questions, mais commencons par la premiere: J'ai besoin de concatener des fichiers, pour ce faire je copie ligne a ligne mes "petits" fichiers dans un grand. Jusque la tout va bien, mais ! je m'apercois que quelques longues lignes sont tronconnees, avec le charactere "pipe" pour marquer que la ligne suivante est la suite de la premiere. Probleme, c'est du code et ces lignes ne peuvent etre tronquees...
Comment faire pour eviter cela ?
C'est du texte, mais pourquoi faire ligne par ligne ?
En passant par des ouvertures binaires et de la lecture en bloc des petits fichiers, ça devrais le faire... et tu es sûr qu'il ne vas pas y avoir de caractère qui passe mystérieusement à la trappe...
Genre (tapé dans le post - non testé) :
eol = os.linesep eolen = len(os.linesep)
hugeFile = open(hugeFileName,"wb") for fileName in TXAToCompile : if fileName==hugeFileName : continue smallFile = open(fileName,"rb") s = smallFile.read() hugeFile.write(s) # Eventuellement ajouter un retour à la ligne si le petit fichier ne # se termine pas par un tel caractère. if and s[-eolen:]<>eol: hugeFile.write(eol) smallFile.close() hugeFile.close()
A+
Laurent.
Bernard Grosperrin wrote:
Bonjour, je suis un complet debutant en Python, meme si je ne suis pas
completement debutant en programmation. Je travailles principalement avec
Clarion, et utilises Python pour ecrire quelques macros facilitant
l'utilisation de WinCVS avec Clarion.
Je suis en Windows XP, avec Python et PythonWin 2.4
J'aurais bien des questions, mais commencons par la premiere:
J'ai besoin de concatener des fichiers, pour ce faire je copie ligne a
ligne mes "petits" fichiers dans un grand. Jusque la tout va bien, mais !
je m'apercois que quelques longues lignes sont tronconnees, avec le
charactere "pipe" pour marquer que la ligne suivante est la suite de la
premiere. Probleme, c'est du code et ces lignes ne peuvent etre
tronquees...
Comment faire pour eviter cela ?
C'est du texte, mais pourquoi faire ligne par ligne ?
En passant par des ouvertures binaires et de la lecture en bloc des petits
fichiers, ça devrais le faire... et tu es sûr qu'il ne vas pas y avoir de
caractère qui passe mystérieusement à la trappe...
Genre (tapé dans le post - non testé) :
eol = os.linesep
eolen = len(os.linesep)
hugeFile = open(hugeFileName,"wb")
for fileName in TXAToCompile :
if fileName==hugeFileName : continue
smallFile = open(fileName,"rb")
s = smallFile.read()
hugeFile.write(s)
# Eventuellement ajouter un retour à la ligne si le petit fichier ne
# se termine pas par un tel caractère.
if and s[-eolen:]<>eol: hugeFile.write(eol)
smallFile.close()
hugeFile.close()
Bonjour, je suis un complet debutant en Python, meme si je ne suis pas completement debutant en programmation. Je travailles principalement avec Clarion, et utilises Python pour ecrire quelques macros facilitant l'utilisation de WinCVS avec Clarion.
Je suis en Windows XP, avec Python et PythonWin 2.4
J'aurais bien des questions, mais commencons par la premiere: J'ai besoin de concatener des fichiers, pour ce faire je copie ligne a ligne mes "petits" fichiers dans un grand. Jusque la tout va bien, mais ! je m'apercois que quelques longues lignes sont tronconnees, avec le charactere "pipe" pour marquer que la ligne suivante est la suite de la premiere. Probleme, c'est du code et ces lignes ne peuvent etre tronquees...
Comment faire pour eviter cela ?
C'est du texte, mais pourquoi faire ligne par ligne ?
En passant par des ouvertures binaires et de la lecture en bloc des petits fichiers, ça devrais le faire... et tu es sûr qu'il ne vas pas y avoir de caractère qui passe mystérieusement à la trappe...
Genre (tapé dans le post - non testé) :
eol = os.linesep eolen = len(os.linesep)
hugeFile = open(hugeFileName,"wb") for fileName in TXAToCompile : if fileName==hugeFileName : continue smallFile = open(fileName,"rb") s = smallFile.read() hugeFile.write(s) # Eventuellement ajouter un retour à la ligne si le petit fichier ne # se termine pas par un tel caractère. if and s[-eolen:]<>eol: hugeFile.write(eol) smallFile.close() hugeFile.close()
A+
Laurent.
Bernard Grosperrin
Laurent, Michel et les autres dont je ne connais pas le nom,
Merci beaucoup de votre aide et de vos exemples...Quand je disais que je debute completement en Python!
En plus, ca fait du bien d'avoir un peu d'aide dans la langue de Moliere quand on est travailleur immigre aux US !
Merci encore Bernard PS-Je reviendrais avec beaucoup d'autres questions
Laurent, Michel et les autres dont je ne connais pas le nom,
Merci beaucoup de votre aide et de vos exemples...Quand je disais que je
debute completement en Python!
En plus, ca fait du bien d'avoir un peu d'aide dans la langue de Moliere
quand on est travailleur immigre aux US !
Merci encore
Bernard
PS-Je reviendrais avec beaucoup d'autres questions