最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)生成指定大小文件的示例詳解

 更新時間:2023年08月15日 15:08:54   作者:測試超有范  
這篇文章主要為大家詳細(xì)介紹了Python如何實現(xiàn)生成指定大小文件,例如txt/圖片/視頻/csv等,文中的示例代碼講解詳細(xì),需要的可以參考下

如題,做測試的懂的都懂,不多解釋

相比其他大佬,本腳本基于gpt編寫后整理,生成的文件更真實,能夠打開預(yù)覽,看過其他人的生成腳本,只是一個符合大小,但是是空白或不能打開的文件。

話不多說,看示例,記得在創(chuàng)建一個data目錄。

代碼示例:

import os
import time
import csv
from PIL import Image
import random
import numpy as np
import imageio
import cv2
# pip install opencv-python
# pip install Pillow
def generate_txt(file_size):
    file_size_bytes = 1024 * 1024 * file_size
    file_path = './data/txt' + time.strftime('%Y%m%d') + '_' + str(file_size) + 'M.txt'
    text = "Women only affect the speed at which I type Pythong code."  # 要重復(fù)的文本
    text_size_bytes = len(text.encode('utf-8'))  # 每個重復(fù)的文本的大小(以字節(jié)為單位)
    repetitions = file_size_bytes // text_size_bytes  # 需要重復(fù)的次數(shù)
    remainder = file_size_bytes % text_size_bytes  # 剩余的字節(jié)數(shù)
    with open(file_path, 'w') as file:
        for _ in range(repetitions):
            file.write(text)
        if remainder > 0:
            file.write(text[:remainder])
    print("生成完成")
def generate_video(target_filesize_mb,  frame_width=1920, frame_height=1080, frame_rate=30):
    temp_filename = './data/image' + time.strftime('%Y%m%d') + '_' + str(target_filesize_mb) + 'M.mp4'
    fourcc = cv2.VideoWriter_fourcc(*"mp4v")
    out = cv2.VideoWriter(temp_filename, fourcc, frame_rate, (frame_width, frame_height))
    while True:
        frame = np.random.randint(0, 256, (frame_height, frame_width, 3), dtype=np.uint8)
        out.write(frame)
        current_filesize = (len(open(temp_filename, "rb").read())) / (1024 * 1024)  # in MB
        if current_filesize >= target_filesize_mb:
            break
    out.release()
def generate_image(memory_size, filename):
    """
    :param memory_size: 生成圖片的大小,單位是m
    :param filename: 生成圖片的文件格式
    :return:
    """
    filename = './data/image'+ time.strftime('%Y%m%d') +'_'+ str(memory_size) + 'M' '.'+filename
    # 計算所需的像素數(shù)量
    num_pixels = (memory_size * 1024 * 1024) // 3  # 每個像素占用 3 個字節(jié)(RGB模式)
    # 根據(jù)像素數(shù)量計算圖片的長和寬
    img_width = int(np.sqrt(num_pixels))
    img_height = int(num_pixels / img_width)
    # 創(chuàng)建一個隨機(jī)顏色的數(shù)組
    pixels = np.random.randint(0, 256, (img_height, img_width, 3), dtype=np.uint8)
    # 根據(jù)數(shù)組創(chuàng)建圖片對象
    image = Image.fromarray(pixels, 'RGB')
    image.save(filename)
def generate_csv(target_memory_mb):
    file_name = './data/csv_utf8 ' + time.strftime('%Y%m%d') +"_"+ str(target_memory_mb) + 'M.csv'
    row_data = "Data" * 100  # Adjust length to control memory usage per row
    with open(file_name, 'w', newline='', encoding='utf-8') as csv_file:
        writer = csv.writer(csv_file)
        while os.path.getsize(file_name) / (1024 * 1024) < target_memory_mb:
            writer.writerow([row_data])
if __name__ == '__main__':
    # 生成一個大小為2MB的TXT文件
    generate_txt(2)
    # 生成15M視頻
    generate_video(target_filesize_mb=15)
    # 生成一個10M 的png的圖片
    generate_image(10, "png")
    # 以utf-8的格式,生成一個10M的csv文件  CSV 文件的大小通常由數(shù)據(jù)量和內(nèi)容決定,而不是像 Excel 那樣可以直接控制行高和列寬。CSV 文件的大小可能會受到編碼和分隔符的影響
    generate_csv(target_memory_mb=10)  # Change target memory size as needed

方法補(bǔ)充

除了上面的方法,小編還為大家整理了其他生成指定大小文件夾的方法,需要的可參考下

方法一:使用os模塊

我們可以使用os模塊中的truncate()函數(shù)來設(shè)置文件的大小。示例如下:

import os
#創(chuàng)建一個1GB大小的文件
file_name = "test.txt"
with open(file_name, 'w') as f:
    f.write(" " * 1024)  # 寫入1KB的空數(shù)據(jù)
    f.seek(1024 * 1024 * 1024)  # 定位到文件末尾
    f.write("EOF")
    f.truncate()  # 設(shè)置文件大小

上述代碼中,我們首先打開一個文件test.txt,并寫入1KB的空數(shù)據(jù)。然后,我們移動文件指針到1GB位置,并在文件末尾加上EOF表示文件結(jié)束。最后,我們使用truncate()函數(shù)來設(shè)置文件大小為1GB。

方法二:使用fallocate命令

除了使用Python內(nèi)置的函數(shù),我們還可以使用系統(tǒng)的命令來創(chuàng)建特定大小的文件。Linux系統(tǒng)中有一個fallocate命令,可以直接分配文件所在的磁盤空間。

我們可以使用subprocess模塊來執(zhí)行系統(tǒng)命令。示例如下:

import subprocess
# 創(chuàng)建一個1GB大小的文件
file_name = "test.txt"
subprocess.run(['fallocate', '-l', '1G', file_name])

上述代碼中,我們使用subprocess.run()函數(shù)來執(zhí)行系統(tǒng)命令fallocate -l 1G test.txt,即在當(dāng)前目錄下創(chuàng)建一個1GB大小的文件test.txt

方法三:使用dd命令

除了fallocate命令外,我們還可以使用Linux系統(tǒng)中的dd命令來創(chuàng)建特定大小的文件。

示例如下:

import subprocess
#創(chuàng)建一個1GB大小的文件
file_name = "test.txt"
subprocess.run(['dd', 'if=/dev/zero', 'of=' + file_name, 'bs=1M', 'count=1024'])

上述代碼中,我們使用dd命令來創(chuàng)建一個1GB大小的文件test.txtif=/dev/zero表示輸入設(shè)備為數(shù)據(jù)全為0的設(shè)備,of=后跟上要創(chuàng)建的文件名,bs=1M表示每次寫入1MB的數(shù)據(jù),count=1024表示寫入1024次,即共計1GB。

到此這篇關(guān)于Python實現(xiàn)生成指定大小文件的示例詳解的文章就介紹到這了,更多相關(guān)Python生成文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • virtualenv隔離Python環(huán)境的問題解析

    virtualenv隔離Python環(huán)境的問題解析

    virtualenv為應(yīng)用提供了隔離的Python運行環(huán)境,解決了不同應(yīng)用間多版本的沖突問題,這篇文章主要介紹了virtualenv隔離Python環(huán)境,需要的朋友可以參考下
    2022-06-06
  • 從入門到精通的Python魔術(shù)方法(Magic Methods)完全指南

    從入門到精通的Python魔術(shù)方法(Magic Methods)完全指南

    這篇文章主要詳細(xì)介紹了Python中特殊的魔術(shù)方法,用于實現(xiàn)各種內(nèi)置操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-07-07
  • 全面理解Python中self的用法

    全面理解Python中self的用法

    Python中看到或使用self時一定要弄明白self的指代,這里就帶大家來全面理解Python中self的用法,需要的朋友可以參考下
    2016-06-06
  • 如何使用python統(tǒng)計字符在文件中出現(xiàn)的次數(shù)

    如何使用python統(tǒng)計字符在文件中出現(xiàn)的次數(shù)

    在開發(fā)過程中很多時候我們有統(tǒng)計單個字符或者字符串在另一個字符串中出現(xiàn)次數(shù)的需求,下面這篇文章主要給大家介紹了關(guān)于如何使用python統(tǒng)計字符在文件中出現(xiàn)的次數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Python?xml.dom.pulldom實現(xiàn)高效處理大型XML文檔

    Python?xml.dom.pulldom實現(xiàn)高效處理大型XML文檔

    xml.dom.pulldom模塊是一種高效的XML處理工具,適用于大型XML文檔的解析,本文就來介紹一下Python?xml.dom.pulldom實現(xiàn)高效處理大型XML文檔,感興趣的可以了解一下
    2025-11-11
  • Python正則表達(dá)式急速入門(小結(jié))

    Python正則表達(dá)式急速入門(小結(jié))

    這篇文章主要介紹了Python正則表達(dá)式急速入門(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • python基于Selenium的web自動化框架

    python基于Selenium的web自動化框架

    這篇文章主要介紹了python基于Selenium的web自動化框架,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python實現(xiàn)搶購IPhone手機(jī)

    Python實現(xiàn)搶購IPhone手機(jī)

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)搶購IPhone手機(jī),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python中的?__init__、__new__?和?__call__示例詳解

    Python中的?__init__、__new__?和?__call__示例詳解

    這篇文章主要介紹了Python中__init__、__new__?和?__call__的相關(guān)資料,它們分別負(fù)責(zé)對象創(chuàng)建、初始化和調(diào)用,用于實現(xiàn)單例模式、裝飾器等高級功能,需要的朋友可以參考下
    2025-09-09
  • 使用Python實現(xiàn)搖號系統(tǒng)的詳細(xì)步驟

    使用Python實現(xiàn)搖號系統(tǒng)的詳細(xì)步驟

    這篇文章主要介紹了如何使用Python構(gòu)建一個簡單的搖號系統(tǒng),包括需求分析、技術(shù)棧、實現(xiàn)步驟和完整代碼示例,該系統(tǒng)能夠從用戶輸入的參與者名單中隨機(jī)抽取指定數(shù)量的中獎?wù)?并將結(jié)果展示給用戶以及記錄到日志文件中,需要的朋友可以參考下
    2024-11-11

最新評論

喀喇| 建始县| 运城市| 柘城县| 和田县| 阿尔山市| 霍城县| 余干县| 宾川县| 体育| 全椒县| 兰考县| 鹤峰县| 沈丘县| 鄂州市| 汝南县| 巩义市| 西平县| 嵊泗县| 横峰县| 南京市| 临汾市| 民丰县| 梓潼县| 淅川县| 泗阳县| 万全县| 满城县| 岫岩| 沙田区| 建平县| 淳化县| 南充市| 荆门市| 房产| 神农架林区| 馆陶县| 博罗县| 遵化市| 鹤壁市| 工布江达县|