linux 如何创建文件

news2024/9/21 16:37:49

我们在写一些教程的时候,经常会需要创建一些用于演示的文档,这些文档往往需要填充一些不特定的内容。那么如何快速的创建演示用的文档呢?

docfaker.py

docfaker.py是一个py脚本,用于创建一个简单的txt文档,docfaker.py脚本内容如下👇:

# -*- coding:UTF-8 -*-
"""
@author: dyy
@contact: douyaoyuan@126.com
@time: 2023/12/19 9:41
@file: docfaker.py
@desc: xxxxxx
"""

# region 引入必要的依赖
import os

模块名 = 'DebugInfo'
try:
    from DebugInfo.DebugInfo import *
except ImportError as impErr:
    print(f"尝试导入 {模块名} 依赖时检测到异常:{impErr}")
    print(f"尝试安装 {模块名} 模块:")
    try:
        os.system(f"pip install {模块名}")
    except OSError as osErr:
        print(f"尝试安装模块 {模块名} 时检测到异常:{osErr}")
        exit(0)
    else:
        try:
            from DebugInfo.DebugInfo import *
        except ImportError as impErr:
            print(f"再次尝试导入 {模块名} 依赖时检测到异常:{impErr}")
            exit(0)

模块名 = 'pathvalidate '
try:
    from pathvalidate import is_valid_filename
except ImportError as impErr:
    print(f"尝试导入 {模块名} 依赖时检测到异常:{impErr}")
    print(f"尝试安装 {模块名} 模块:")
    try:
        os.system(f"pip install {模块名}")
    except OSError as osErr:
        print(f"尝试安装模块 {模块名} 时检测到异常:{osErr}")
        exit(0)
    else:
        try:
            from pathvalidate import is_valid_filename
        except ImportError as impErr:
            print(f"再次尝试导入 {模块名} 依赖时检测到异常:{impErr}")
            exit(0)

try:
    # 导入 faker 模块
    from faker import Faker
except ImportError as impErr:
    print("尝试导入 faker 依赖时检测到异常:", impErr)
    try:
        os.system("pip install faker")
        print("尝试导入 faker 成功")
    except OSError as osErr:
        print("尝试安装模块 faker 时检测到异常:", osErr)
        exit(0)
    else:
        try:
            # 如果模块安装成功,则再次尝试导入依赖
            from faker import Faker
        except Exception as expErr:
            print("再次尝试导入 faker 依赖时检测到异常:", expErr)
            exit(0)

# endregion

伪装1 = Faker(['zh_CN', 'en_US'])

def 文档名合法性检查(文档名:str)->bool:
    文档名 = str(文档名 if 文档名 else '')
    if not 文档名:
        return False
    return is_valid_filename(文档名)

if '__main__' == __name__:
    画板: 打印模板 = 打印模板(False)
    画板.执行位置(__file__)

    本地搜索:本地搜索接口类 = 本地搜索接口类()
    交互接口: 交互接口类 = 交互接口类()
    交互接口.输入提示修饰方法 = 蓝字

    文档名: str = ''
    while True:
        文档名 = 交互接口.发起文本交互(输入提示='请输入文档名(0: 退出): ',限定范围=文档名合法性检查,画板=画板.副本)
        if '0' == 文档名:
            画板.调试消息('用户要求退出程序')
            exit(0)
        if '.' not in 文档名:  # 如果文档名中没有后缀,则默认为txt 文档
            文档名 += '.txt'

        if 本地搜索.存在文档(文档=文档名, 画板=画板.副本):  # 文档已经存在,则提示是否覆盖
            用户确认: str = 交互接口.发起文本交互(输入提示=f'文档 {绿字(文档名)} 已经存在,是否覆盖?({绿字("y: 覆盖")};{红字("n: 不覆盖")}):',
                                                  限定范围='yYnN',
                                                  画板=画板.副本)
            if '0' == 用户确认:
                画板.调试消息('用户要求退出程序')
                exit(0)

            if 用户确认 in ['y', 'Y']:
                break
        else:  # 文档不存在
            break

    画板.调试消息(f'文档名是: {文档名}')

    内容行数 = 交互接口.发起文本交互(输入提示='请输入文档内容的行数: ', 允许空值=True, 限定范围=str.isdigit,画板=画板.副本)
    if not 内容行数:
        内容行数 = 伪装1.pyint(0,50)
    else:
        内容行数 = int(内容行数)

    空行机率: float = 0.25
    行列表: list[str] = []
    if 内容行数 > 0:
        for 行号 in range(内容行数):
            色子 = 伪装1.pyfloat(left_digits=0, right_digits=2, positive=True)
            if 色子 <= 空行机率:  # 这是行是空行
                行列表.append('')
            else:
                字数 = 伪装1.pyint(7, 20)
                行列表.append(f'第 {行号 + 1} 行: ' + str(伪装1.text(max_nb_chars=字数)).replace('\n', '↩'))

    if 行列表:
        画板.调试消息('\n'.join(行列表))
    else:
        画板.调试消息('文档内容为空')

    # 创建空文档
    os.system(f'echo "" | cat > {文档名}')
    if 行列表:  # 将行列表中的内容写入到文档名的文档中
        for 行号 in range(0, len(行列表), 500):  # 每 500 行写入一次, 避免 buff 过大
            内容: str = '\n'.join(行列表[行号:行号+500])
            if 0 == 行号:
                os.system(f'echo "{内容}" | cat > {文档名}')
            else:
                os.system(f'echo "{内容}" | cat >> {文档名}')

如上👆,脚本内容很简单,主要是与用户交互,获取一些必要的用户输入信息后,生成一个txt文档,然后使用Faker包生成一些填充内容。

使用演示

我们在Ubuntu系统中定义docfaker.py的调用指令为fakdoc,这样我们通过fakdoc指令就可以运行docfaker.py脚本了,如下👇:
在这里插入图片描述
脚本提示我们输入文档名称,我们输入fileName并回车。

👇如下,系统提示我们需要输入文档填充内容的行数,我们输入一个大于0的值即可:
在这里插入图片描述
我们输入13并回车。

👇如下,脚本根据我们输入的文档名和内容填充行数,生成一个txt文档,并填充了随机的内容,这中间还会随机填充空行。
在这里插入图片描述

小结

这就是今天分享的如何在Ubuntu中生成一个随机文档的方法了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1381566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

备战抖音商城好物年货节,品牌焕发新商机

农历春节前的最后一个月&#xff0c;打工人们逐渐将置办年货提上日程。忙碌了一年的辛苦与疲惫&#xff0c;总能在喜气洋洋买年货的过程中&#xff0c;被一扫而空。这是“年味”的开始&#xff0c;也是公司高管郭广宇面临的一场关键战役。 郭广宇今年35岁&#xff0c;是三只松鼠…

《SRE Google 运维解密》笔记

指导思想 介绍 Google 生产环境介绍 borg 是 k8s 的前身。 拥抱风险 服务质量 现在的 SLO 没有更细粒度的划分到季度 如果划分到季度&#xff0c;需要用这个数据来限制什么或者进行什么活动&#xff1f; L1S 链路的 SLA 的签署工作已经做了很多 对于 SLA 的达成情况数据没有…

HTB-SAU

信息收集 # cat port.nmap # Nmap 7.94 scan initiated Thu Jan 11 19:26:51 2024 as: nmap -sS --min-rate 10000 -p- -oN port.nmap 10.10.11.224 Nmap scan report for 10.10.11.224 (10.10.11.224) Host is up (0.28s latency). Not shown: 65531 closed tcp ports (r…

【RHEL】Vivado调用VCS+Verdi联合仿真报错解决

问题描述 在使用VCS Verdi仿真Vivado工程时&#xff0c;点击行为仿真按钮进度条窗口消失后&#xff0c;Verdi窗口并未出现&#xff0c;查看消息报错如下&#xff1a; vcs: line 34205: 119837 Segmentation fault (core dumped) ${TOOL_HOME}/bin/cfs_ident_exec -f ${X…

OpenCV 基于C++图像读取及存储API函数

OpenCV可以从存储介质中读入图像&#xff0c;也可以将摄像头(Camera)抓取的图像载入内存&#xff0c;然后进行处理。而存储图像就是将内存中的图像数据写入存储介质中&#xff0c;如写入硬盘、优盘等。 OpenCV要读入图像、操作图像。首先要用到Mat类&#xff0c;并且需创建Mat对…

yolov5口罩检测模型

1 项目背景及意义 全球范围内的公共卫生安全和人脸识别技术的发展。在面对新型冠状病毒等传染病的爆发和传播风险时&#xff0c;佩戴口罩成为一种重要的防护措施。然而&#xff0c;现有的人脸识别系统在识别戴口罩的人脸时存在一定的困难。 通过口罩识别技术&#xff0c;可以…

C程序训练:与输入有关的错误

在录入程序时有时稍不注意就可能录入错误的字符导致程序运行结果出现错误&#xff0c;下面举例说明。 下面程序的运行结果是错的&#xff0c;但程序又没有错&#xff0c;到底问题出现在哪呢&#xff1f; #include <stdio.h> int main() {FILE *fp;int i, k, n;fpfopen(…

Curl命令POST请求

curl工具介绍&#xff1a; CURL是一个利用URL语法在命令行下工作的文件传输工具&#xff0c;被广泛应用在Unix、Linux发行版中&#xff0c;并且有DOS和Win32、Win64的移植版本。同时它还支持诸多的通信协议&#xff08;我们常用的有HTTP、HTTPS、FTP、SMTP、TELNET等&#xff0…

山西电力市场日前价格预测【2024-01-14】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-01-14&#xff09;山西电力市场全天平均日前电价为415.13元/MWh。其中&#xff0c;最高日前电价为851.84元/MWh&#xff0c;预计出现在18:15。最低日前电价为198.87元/MWh&#xff0c;预计…

对于软件测试的认识和了解

对软件测试的认识&#xff1a; 软件测试要求开发人员避免测试自己开发的程序。从心理学角度讲&#xff0c;这是很有道理的。特别是一个相对复杂的系统&#xff0c;开发人员在刚刚开发完成的时候&#xff0c;尚沉浸于对自己设计的回味之中。此时去测试的话往往会侧重于程序本身的…

U盘抜太快打不开恢复方法

U盘是一种常用的存储设备&#xff0c;由于其便携性和大容量等特点&#xff0c;被广泛应用于数据存储和传输。然而&#xff0c;有时候我们会遇到U盘拔出后无法再次使用的问题&#xff0c;这通常是由于U盘拔出太快导致的。本文将深入探讨U盘拔太快打不开的原因&#xff0c;并提供…

单例模式的八种写法、单例和并发的关系

文章目录 1.单例模式的作用2.单例模式的适用场景3.饿汉式静态常量&#xff08;可用&#xff09;静态代码块&#xff08;可用&#xff09; 4.懒汉式线程不安全&#xff08;不可用&#xff09;同步方法&#xff08;线程安全&#xff0c;但不推荐用&#xff09;同步代码块&#xf…

Java初学习

Java代码示例&#xff1a; public class helloworld {public static void main(String[] args){System.out.println("hello world");} } Java程序的名字需要和文件名字一致&#xff0c;就是那个helloworld Java程序需要对类有深度的认识&#xff1a; 对象是类的…

猫狗大战(猫狗识别)

1.问题简介 1.1问题描述 在这个问题中&#xff0c;你将面临一个经典的机器学习分类挑战——猫狗大战。你的任务是建立一个分类模型&#xff0c;能够准确地区分图像中是猫还是狗。 1.2预期解决方案 你的目标是通过训练一个机器学习模型&#xff0c;使其在给定一张图像时能够准…

kafka之java客户端实战

1. kafka的客户端 Kafka提供了两套客户端API&#xff0c;HighLevel API和LowLevel API。 HighLevel API封装了kafka的运行细节&#xff0c;使用起来比较简单&#xff0c;是企业开发过程中最常用的客户端API。 而LowLevel API则需要客户端自己管理Kafka的运行细节&#xff0c;Pa…

UniRepLKNet实战:使用 UniRepLKNet实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

【数模百科】距离美赛还有20天,不要忘了阅读往年获奖论文(附04-23年美赛获奖论文)

之前发了很多数模相关的知识&#xff0c;受到了一些人的关注&#xff0c;也有很多人私下问我&#xff0c;距离美赛还有20几天了&#xff0c;还来不来得及。 对此我想说&#xff0c; 来不来得及重要吗&#xff1f; 你名都报了&#xff0c;钱也交了&#xff0c;还是笔不小的钱…

Vue.js设计与实现阅读-3

Vue设计与实现阅读-3 1、声明式描述UI2、渲染器3、组件4、模板的工作原理5、Vue.js 是各个模块组成的有机整体 前言 前面一章我们了解了&#xff0c;开发体验是衡量一个框架的重要指标之一。提供友好的警告信息至关重要&#xff0c;但是越详细的警告信息&#xff0c;意味着框架…

前端 TS 语法继承 多态 修饰符 readonly 抽象类 ts 基本写法 可选 剩余参数 函数重载 接口 类(3)

继承 继承之间的叫法 A类继承了B类&#xff0c;那么A类叫做子类&#xff0c;B类叫成基类 子类 ---》派生类 基类 ---》超类&#xff08;父类&#xff09; // 继承之间的叫法 // A类继承了B类&#xff0c;那么A类叫做子类&#xff0c;B类叫成基类 // 子类 ---》派生类 // 基类 …

性能瓶颈分析定位

用vmstat、sar、iostat检测是否是CPU瓶颈 用free、vmstat检测是否是内存瓶颈 用iostat、dmesg 检测是否是磁盘I/O瓶颈 用netstat检测是否是网络带宽瓶颈 1 首先进行OS层面的检查确认 首先要确认当前到底是哪些进程引起的负载高&#xff0c;以及这些进程卡在什么地方&#x…