Как отредактировать файл для увеличения размера, добавив пробелы в конце в Python - PullRequest
0 голосов
/ 05 ноября 2019

Я хочу сначала создать копию файла, а затем проверить размер файла и, если размер меньше 1 МБ, добавить пробелы в конце файла, чтобы сделать его размером 1 МБ.

Я скопировал приведенный ниже код, но мне нужна помощь по добавлению пробелов в конец файла.

from shutil import copyfile
copyfile(self.actualfile,self.copyfile)

Ответы [ 4 ]

1 голос
/ 05 ноября 2019

вы можете сделать это так:

import os

filename = 'file.txt'

size = os.stat(filename).st_size

f = open(filename, "a+")
f.write(" " * (1024*1024 - size))
f.close();
0 голосов
/ 06 ноября 2019

Вы можете попробовать это:

actual_size = os.path.getsize(self.copyfile)
    x = " " * (int(size)-actual_size)
    with open(self.copyfile, "a", encoding="utf-8") as f:
        f.write(x)      
    print("Size (In bytes) of '%s':" %os.path.getsize(self.copyfile)) 
0 голосов
/ 05 ноября 2019

Используется pathlib от более новых Pythons, чтобы упростить получение размера файла и добавление точно требуемого отступа.

#!/usr/bin/env python

import pathlib
import shutil

destfile = pathlib.Path("/tmp/foo")
shutil.copyfile(__file__, destfile)

required_padding = 1024 * 1024 - destfile.stat().st_size
if required_padding > 0:
    with destfile.open("ab") as outfile:
        outfile.write(b" " * required_padding)
0 голосов
/ 05 ноября 2019
with open(self.actualfile, 'r') as fin:
    with open(self.copyfile, 'w') as fout:
        print('{:<1048756}'.format(fin.read()), file=fout) 

...