0
votes

Python concaténate de plusieurs gros fichiers d'extension connus 'str' objet n'a pas d'attribut 'Lecture'

J'essaie de concaténer plusieurs fichiers volumineux (10-100) (100 MB-1GB) à l'aide de Python. Je sais que le chat est efficace et rapide, mais je veux le faire en python en raison de la répétabilité et de mettre tout le code comme python et n'utilisez pas de scripts Shell.

J'ai essayé: xxx

Je m'attendais à ce qu'il soit concaténé, mais j'ai obtenu

Exception a eu lieu: l'objet AttributeError 'str' n'a aucun attribut 'Lire'

Je sais que les tempfiles sont la liste des chaînes, mais comment le convertir en liste des poignées de fichier?


0 commentaires

3 Réponses :


2
votes

à la place, rassemblez votre TEMPFILES en tant que générateur de FileObjects : xxx


2 commentaires

Avec cela, je reçois: UnicodedecodeError: le codec 'Charmap' ne peut pas décoder l'octet 0x83 en position 2567: Cartes de caractères sur


@Tomasz, définissez un codage approprié / réel, voir ceci Stackoverflow.com/questions/9233027/...



1
votes

Permettez-moi d'essayer de vous montrer le problème avec votre code. Vous essayez d'appeler lire sur les noms des fichiers, pas l'objet de fichier lui-même. Plutôt, vous pouvez le faire:

path_with_txt_files = os.getcwd()
print("Current working directory is:",os.getcwd())
tempfiles=[f for f in os.listdir(path_with_txt_files) if f.endswith('.txt')]
print(tempfiles)
f = open("Concatenated.txt", "w")
for tempfile in tempfiles:
    t = open(tempfile,'r')
    f.write(t.read())
    t.close()


0 commentaires

2
votes

Vous devez ouvrir le tempfile:

for tempfile in tempfiles:
  f.write(open(tempfile, "r").read())


0 commentaires