python Как мне импортировать несколько файлов .txt в папку, чтобы добавить символы в каждый файл .txt? - PullRequest
0 голосов
/ 20 марта 2019

В папке «а» находятся текстовые файлы с разными именами.Я хочу прочитать все эти текстовые файлы и добавить букву «б» в каждый текстовый файл.Что мне делать?

cwd = os.getcwd()
input_dir = os.path.join(cwd, "my .txt files dir")

sorts = sorted(glob(input_dir), key = lambda x:(len(x) , x))

for f in sorts :
    f = open(input_dir, 'a')
    data = "add text"
    f.write(data)
    f.close()

Ответы [ 3 ]

1 голос
/ 20 марта 2019

Добавить данные в файл:
- первый: получить весь файл в папке a .
- второй: найти расширение с .txt .
- третий: откройте его и сделайте что-нибудь («добавить» или «переписать»).

Демо:

import os

# your .txt files dir
path = 'a'
# append data what you want
appendData = 'b'

fileNames = list(os.walk(path))[0][2]
fileNames.sort(key=len)
fileNums = len(fileNames)

# your dst file extension
fileExt = '.txt'
# # Extract extension from filename
# fileExt = os.path.splitext(fileNames[0])[1]

for fileName in fileNames:
    if fileName.endswith(fileExt):
        fileFullPath = os.path.join(path, fileName)
        with open(fileFullPath, 'a') as f:
            f.write(appendData)

0 голосов
/ 20 марта 2019

Не открывайте файлы с помощью

f = open(input_dir, 'a')
f.close()

Вместо

with open(input_dir, 'a') as inputFile:
    Do something

Также вы хотите

import os
import glob  # We will use this module to open only .txt files

path = 'your/path'

for filename in glob.glob(os.path.join(path, '*.txt'))
    with open(filename, 'a') as inputFile:
        inputFile.write('b')
0 голосов
/ 20 марта 2019

Как говорили другие, это простой вопрос, который можно легко найти в Google.В любом случае вот как это сделать:

from os import listdir
from os.path import isfile, isdir, join

files = [file for file in listdir("files") if isfile(join("files", file))]
        directories = [directory for directory in listdir("files") if isdir(join("files", directory))]

print(files)

for file_name in files:
    try:
        file = open("files/" + file_name, "a")
        file.write("b")
        file.close()
    except IOError as err:
        print("Could not open file because : ", err)

Замените "file" на каталог, где находятся ваши файлы, или путь к этому каталогу, например, "directory0 / directory1 / directory_with_files"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...