Python脚本:生成指定大小和内容的文本文件

生成一个指定大小的文本文件,其内容是重复的字符串,可以通过Python实现。下面是一个简单的Python脚本,它接受两个参数:文件大小(以字节为单位)和要重复的字符串内容,然后生成一个文本文件,其内容是重复的指定字符串直到达到指定的文件大小。
import os

def generate_file(file_size, content):
    # 计算需要重复的字符串次数
    repeat_times = file_size // len(content.encode('utf-8'))

    # 计算最后一个字符可能的额外大小
    last_part_size = file_size % len(content.encode('utf-8'))

    # 生成重复的字符串
    repeated_content = (content * repeat_times) + content[:last_part_size]

    # 确保生成的文件大小正好是file_size
    while len(repeated_content.encode('utf-8')) < file_size:
        repeated_content += content

    # 截断生成的字符串以确保文件大小正好是file_size
    final_content = repeated_content[0:file_size]

    # 写入文件
    with open('output.txt', 'wb') as f:
        f.write(final_content.encode('utf-8'))

# 调用函数,生成100MB大小的文件,内容是"你好世界"
generate_file(100 * 1024 * 1024, '你好世界')
请注意,这个脚本会生成一个名为`output.txt`的文件,其内容是"你好世界"这个字符串重复多次,直到文件大小达到100MB。如果需要生成不同的文件名或使用不同的编码,可以相应地修改脚本。此外,这个脚本没有进行错误检查,实际使用时可能需要添加适当的异常处理。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Python语言编写脚本来使用指定秘钥为文本文件内容进行加密和解密。下面是一个示例脚本: ```python import cryptography.fernet import argparse import os # 定义命令行参数 parser = argparse.ArgumentParser(description='Encrypt/Decrypt a file with a given key.') parser.add_argument('filename', help='Name of the file to encrypt/decrypt.') parser.add_argument('key', help='Encryption/Decryption key.') # 解析命令行参数 args = parser.parse_args() # 获取文件名和密钥 filename = args.filename key = args.key.encode() # 随机生成加密密钥 cipher_suite = cryptography.fernet.Fernet(key) # 判断文件是否存在 if not os.path.isfile(filename): print(f"Error: {filename} does not exist.") exit() # 加密文件内容 with open(filename, 'rb') as f: plaintext = f.read() ciphertext = cipher_suite.encrypt(plaintext) # 将加密后的内容写入文件 with open(filename + '.enc', 'wb') as f: f.write(ciphertext) print(f"{filename} encrypted successfully as {filename}.enc.") # 解密文件内容 with open(filename + '.enc', 'rb') as f: ciphertext = f.read() plaintext = cipher_suite.decrypt(ciphertext) # 将解密后的内容写入文件 with open(filename + '.decrypted', 'wb') as f: f.write(plaintext) print(f"{filename}.enc decrypted successfully as {filename}.decrypted.") ``` 在上述示例中,使用`argparse`模块定义了两个命令行参数:`filename`和`key`。`filename`参数表示要加密/解密的文件名,`key`参数表示加密/解密使用的密钥。然后使用`cryptography.fernet.Fernet()`函数生成一个加密密钥,将密钥保存在变量`cipher_suite`中。接下来,判断文件是否存在,如果文件不存在,输出错误信息并退出程序。然后,使用`cipher_suite.encrypt()`函数对文件内容进行加密得到密文,使用`open()`函数创建一个新的文件,将加密后的内容写入其中。最后,使用`cipher_suite.decrypt()`函数解密文件内容得到明文,并将明文写入新的文件中。 注意:该示例脚本使用`cryptography`库中的Fernet加密算法进行加密和解密,具有较高的安全性和保密性。但是请注意保护好密钥,不要将密钥泄露给他人。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值