Хобрук: Ваш путь к мастерству в программировании

Объединение определенных файлов каталога в python

У меня есть каталог C:/newdir/ Он содержит следующие файлы с именами файлов:

s1_student1_file
t1_teacher2_file
hab_parent5_file
y1_professor_file 
bsa_assistant2_file
t1_student_file
nas_officer_file
ee1_newguy15_file
ee1_professor15_file
f1_student8_file

Я хочу объединить содержимое файлов s1_student1_file, t1_teacher2_file, t1_student_file, y1_professor_file, ee1_newguy15_file, f1_student8_file и ee1_professor15_file в новый файл с именем all_file и удалить объединенные файлы из каталога, который я должен написать код python для этого, но не могу понять, как это сделать.

11.06.2020

  • это текстовые файлы? 11.06.2020
  • да это текстовые файлы 11.06.2020

Ответы:


1

Вы можете использовать glob для вывода списка всех выбранных текстовых файлов в выбранной папке. Затем вы можете использовать цикл for, чтобы перебрать весь текстовый файл и записать содержимое в другой файл:

from glob import glob

with open('all_file.txt','a') as f:
    for file in glob('s1*')+glob('t1*')+glob('y1*')+glob('ee1*'):
        with open(file+'txt','r') as r:
            f.write(r.read())

Чтобы потом удалить файлы:

from glob import glob
import os
with open('all_file.txt','a') as f:
    for file in glob('s1*')+glob('t1*')+glob('y1*')+glob('ee1*'):
        with open(file,'r') as r:
            f.write(r.read())
        os.remove(file)
11.06.2020
  • извините, еще одна вещь, где в коде я должен передать свой каталог в качестве аргумента? 11.06.2020
  • Вы можете изменить glob('s1*')+glob('t1*')+glob('y1*')+glob('ee1*') на ["C:/newdir/"+file for file in glob('s1*')+glob('t1*')+glob('y1*')+glob('ee1*')]. 11.06.2020
  • привет, так как бы я удалил все файлы, которые были объединены из каталога после их объединения в одном коде 12.06.2020
  • Просто добавьте os.remove(file+'.txt') прямо под менеджером контекста. 12.06.2020
  • привет, код работает и не показывает никаких ошибок, но файлы не удаляются 12.06.2020
  • Вы сказали, что хотите удалить их? 12.06.2020
  • ya файлы, содержимое которых было объединено, должны быть удалены из каталога после объединения 12.06.2020
  • не могли бы вы также взглянуть на мой другой вопрос 12.06.2020
  • Просто измените f.write(r.read()) на f.write(len(r.readlines())). 12.06.2020
  • привет, потребовалась еще одна модификация, в которой мне пришлось объединить файлы содержимого из второй строки файлов. Для этого я попробовал f.write(r.read()[1:]), но, похоже, это не работает. 14.06.2020

  • 2

    Импорт библиотек Shutil и Pathlib.

    Вы можете установить библиотеки с помощью этой команды —

    Пип установить Shutil

    pip установить путьную библиотеку

    Реализация Python

    import shutil 
    from pathlib import Path 
    
    firstfile = Path(r'C:\Users\Sohom\Desktop\A.txt') 
    secondfile = Path(r'C:\Users\Sohom\Desktop\B.txt') 
    
    newfile = input("Enter the name of the new file: ") 
    print() 
    print("The merged content of the 2 files will be in", newfile) 
    
    with open(newfile, "wb") as wfd: 
    
    for f in [firstfile, secondfile]: 
        with open(f, "rb") as fd: 
            shutil.copyfileobj(fd, wfd, 1024 * 1024 * 10) 
    
      print("\nThe content is merged successfully.!") 
     print("Do you want to view it ? (y / n): ") 
    
     check = input() 
     if check == 'n': 
    exit() 
    else: 
    print() 
    c = open(newfile, "r") 
    print(c.read()) 
    c.close()
    

    ......

    Динамически создавать массив текстовых файлов

    12.06.2020
  • Код Ann Zen выполняет свою работу, но у меня возникают трудности с удалением файлов, которые необходимо объединить, из каталога после того, как они были объединены. Не могли бы вы помочь мне с этим 12.06.2020
  • import os //Вызовите это в цикле, используя файловый массив file_path = '/tmp/file.txt' os.remove(file_path) 13.06.2020
  • Новые материалы

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..

    Раскрытие возможностей НЛП: часть речевой маркировки и ее проблемы
    В сфере обработки естественного языка (NLP) маркировка частей речи (POS) выступает в качестве фундаментального метода, позволяющего компьютерам понимать и анализировать человеческий язык на..

    Под поверхностью: раскрытие деталей системы с помощью инструментов Linux CLI
    Чем больше вы изучаете Linux и продвигаетесь вперед, тем больше вам нужно проверять информацию о вашей системе. Эта информация может касаться аппаратного обеспечения, такого как процессор,..