OSError:[Errno 28]设备上没有剩余空间:python3

2024-09-28 23:29:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从高分辨率图像生成补丁。下面的脚本在我的本地PC上运行得很好,但当我将所有图像转移到服务器并生成补丁时,中间会出现错误

用于生成32x32修补程序的脚本

import os.path
import matplotlib.pyplot as plt
import os
import random
import numpy as np
import sys
from PIL import Image
from PIL import ImageFilter

cwd = os.getcwd()
print(cwd)

ori_data_dir = '/home2/multilab/Khawar/Image_Batches/Batch3/'

print(ori_data_dir)
output_path = '/home2/multilab/Khawar/Image_Batches/com_patches/'

imgNames = os.listdir(ori_data_dir)

patch_size = [32, 32]

sample_num_for_each_seq = 20
sample_idx = 0

for im_name in imgNames:

    seq_path = ori_data_dir + im_name

    img = Image.open(seq_path)
    im_height = img.height
    im_width = img.width

    img_arr = np.array(img)

    if len(img_arr.shape) < 3:
        continue

    sample_num_for_each_seq = int(im_height * im_width / patch_size[0] / patch_size[1]) * 4

    for sample_id in range(sample_num_for_each_seq):
        random_resize_factor = random.random() * 0.4 + 0.6  #random 0.6 - 1.0 resize
        crop_size = [round(patch_size[0] / random_resize_factor), round(patch_size[1] / random_resize_factor)]

        random_crop_x1 = 0 + int(random.random() * (im_width - crop_size[1] - 2))
        random_crop_y1 = 0 + int(random.random() * (im_height - crop_size[0] - 2))
        random_crop_x2 = random_crop_x1 + crop_size[1]
        random_crop_y2 = random_crop_y1 + crop_size[0]

        random_box = (random_crop_x1, random_crop_y1, random_crop_x2, random_crop_y2)

        sample_array = None

        randomCropPatch = img.crop(random_box)
        randomCropPatch = randomCropPatch.resize(patch_size, Image.BICUBIC)

        sample_out_path = output_path + im_name[0:len(im_name) - 4] + "_%04d.png" % (sample_id)
        randomCropPatch.save(sample_out_path)

    sample_idx += 1

    if sample_idx % 10 == 0:
        # break
        print(sample_idx)

错误

 (base) multilab@CTN-0824171555:~/Khawar$ python3 

generatePatchFlickr.py
/home2/multilab/Khawar
/home2/multilab/Khawar/Image_Batches/Batch3/
Traceback (most recent call last):
  File "generatePatchFlickr.py", line 57, in <module>
    randomCropPatch.save(sample_out_path)
  File "/home2/multilab/anaconda3/lib/python3.7/site-packages/PIL/Image.py", line 1947, in save
    fp = builtins.open(filename, "w+b")
OSError: [Errno 28] No space left on device: '/home2/multilab/Khawar/Image_Batches/com_patches/5420908975_858440e4b5_b_0000.png'
(base) multilab@CTN-0824171555:~/Khawar$ 

“df-i”的输出

Filesystem                       Inodes      IUsed       IFree IUse% Mounted on
overlay                        16179200    2569364    13609836   16% /
tmpfs                          49334187         25    49334162    1% /dev
sf-app:/icc                     3260416    1871505     1388911   58% /APP2
/dev/sda1                      16179200    2569364    13609836   16% /engrid/ensh
sf-home:/cloudhome/multilab 67075440640 6596266286 60479174354   10% /home2/multilab
tmpfs                          49334187          1    49334186    1% /dev/shm
tmpfs                          49334187         16    49334171    1% /sys/fs/cgroup
tmpfs                          49334187          7    49334180    1% /proc/driver/nvidia
devtmpfs                       49330051        622    49329429    1% /dev/nvidia0
tmpfs                          49334187          1    49334186    1% /proc/scsi
tmpfs                          49334187          1    49334186    1% /sys/firmware
tmpfs                          49334187         74    49334113    1% /run
tmpfs                          49334187          2    49334185    1% /run/lock

“df-Bm-h”的输出

Filesystem                   Size  Used Avail Use% Mounted on
overlay                      243G   63G  168G  28% /
tmpfs                         64M     0   64M   0% /dev
sf-app:/icc                  100G   58G   43G  58% /APP2
/dev/sda1                    243G   63G  168G  28% /engrid/ensh
sf-home:/cloudhome/multilab  4.9T   71G  4.9T   2% /home2/multilab
tmpfs                        189G     0  189G   0% /dev/shm
tmpfs                        189G     0  189G   0% /sys/fs/cgroup
tmpfs                        189G   12K  189G   1% /proc/driver/nvidia
devtmpfs                     189G     0  189G   0% /dev/nvidia0
tmpfs                        189G     0  189G   0% /proc/scsi
tmpfs                        189G     0  189G   0% /sys/firmware
tmpfs                        189G   44K  189G   1% /run
tmpfs                        5.0M     0  5.0M   0% /run/lock

Tags: samplepathdevcropimageimportimgsize