1.1 问题
编写mktxtfile.py脚本,实现以下目标:

编写一个程序,要求用户输入文件名
如果文件已存在,要求用户重新输入
提示用户输入数据,每行数据先写到列表中
将列表数据写入到用户输入的文件名中
1.2 方案
用三个函数分别实现文件名获取、文件内容获取、将获取到的文件内容写入get_fname()函数获取的文件中 这三个方法,最终调用三个函数,完成文件创建:

1.获取文件名函数get_fname():利用while语句循环判断文件名是否存在,input文件名,如果不存在,循环停止,返回用户输入的文件名,如果存在,提示已存在,重新进入循环,直至文件名不存在为止,返回文件名用户输入的文件名

2.文件内容获取函数get_contents():创建空列表存储获取到的数据,利用while语句让用户循环输入数据,如果输入的数据是end,循环停止,返回列表中内容,如果输入的数据不是end,将输入的数据追加到列表结尾,返回列表中内容

3.wfile()函数:用with语句将获取到的文件以写方式打开,这样打开代码块结束后文件会自动关闭,将get_contents()函数返回内容写入到已打开文件中

4.最终当用户cat文件名时,可以看到写入结果

1.3 步骤
实现此案例需要按照如下步骤进行。

步骤一:编写脚本

[root@localhost day04]# vim mktxtfile.py
#!/usr/bin/env python3
import os
def get_fname():while True:filename = input('请输入文件名:')if not os.path.exists(filename):breakprint('%s 已存在,请重试。' % filename)return filename
def get_contents():contents = []print('请输入内容,结束请输入end。')while True:line = input('> ')if line == 'end':breakcontents.append(line)return contents
def wfile(fname, contents):with open(fname, 'w') as fobj:fobj.writelines(contents)
if __name__ == '__main__':fname = get_fname()contents = get_contents()contents = ['%s\n' % line for line in contents]wfile(fname, contents)

步骤二:测试脚本执行

[root@localhost day04]# ls
adduser.py    format_str2.py  list_method.py  mylist.py     string_op.py
checkid.py    format_str.py   mkseq.py        randpass2.py
fmtoutput.py  get_val.py      mktxtfile.py    seq_func.py
[root@localhost day04]# python3 mktxtfile.py
请输入文件名:passwd
请输入内容,结束请输入end。
> nihao,welcom
> woshi
> end
[root@localhost day04]# python3 mktxtfile.py
请输入文件名:mkseq.py
mkseq.py 已存在,请重试。
请输入文件名:randpass.py
请输入内容,结束请输入end。
> myname
> end
[root@localhost day04]# cat passwd
nihao,welcom
woshi
[root@localhost day04]# cat randpass.py
myname
[root@localhost day04]# ls
adduser.py    format_str2.py  list_method.py  mylist.py     randpass.py
checkid.py    format_str.py   mkseq.py        passwd        seq_func.py
fmtoutput.py  get_val.py      mktxtfile.py    randpass2.py  string_op.py

利用Python创建文件相关推荐

  1. python利用pyside2创建文件夹选择框,文件选择框(无小窗口)

    python利用pyside2创建文件夹选择框,文件选择框(无小窗口) 文件夹选择框 文件选择框 文件多选框 之前利用win32ui创建文件选择窗口非常好用,但是想使用文件夹选择窗口发现行不通.利用t ...

  2. python数据对比找不同_利用Python读取文件的四种不同方法比对

    利用Python读取文件的四种不同方法比对 大家都知道Python 读文件的方式多种多样,但是当需要读取一个大文件的时候,不同的读取方式会有不一样的效果.下面就来看看详细的介绍吧. 场景 逐行读取一个 ...

  3. python创建文件的编码格式

    python创建文件的编码格式 最近用python生成一个批量改名的批处理,因为改名中包含中文字符,批处理格式为UTF-8所以在改名会出现文件名乱码,后用搜索引擎找指定编码方法没解决,后来想到可能是根 ...

  4. 利用Python创建Excel条形图

    利用Python创建Excel条形图 创建Excel条形图是学习Python办公自动化的扩展知识,我虽然这么说但是还是属于重要的内容之一.想要通过Python创建Excel图形我们需要用到函数open ...

  5. 使用python创建文件夹

    使用python创建文件夹 python中创建文件夹所用到的模块是os模块中的makedirs方法.考虑到易读性,我比较喜欢通过编写一个函数或者class来实现我要做的工作. 以下是完整的代码块: / ...

  6. 利用python将文件夹中子文件夹中的图片数目大于小于指定的数目分类

    利用python将文件夹中子文件夹中的图片数目大于小于指定的数目分类 find ./ -name ".DS_Store" -depth -exec rm {} \;  Mac 删除 ...

  7. python通过内置的什么函数打开一个文件_利用python进行文件操作

    这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...

  8. Python创建文件时自动生成文件信息

    Python创建文件时自动生成文件信息 在创建python脚本文件时,对文件初始化自动生成一些文件信息来进行设置 1 打开路径 2 调整面板 3 面板填写样式 参考链接 Pycharm创建文件时自动生 ...

  9. python创建文件并写入json

    python创建文件并写入json import json import os import uuidPATH = 'D:/SecurityData' if not os.path.exists(PA ...

最新文章

  1. 特斯拉马斯克直聘AI人才:不看学历看能力
  2. 产品经理不得不知的APP数据分析及报表设计基础
  3. SSM项目使用GoEasy 获取客户端上下线实时状态变化及在线客户列表
  4. 突发!Redis之父退出:不在维护Redis项目
  5. 格雷码、二进制码、BCD编码
  6. 下面哪个选项不是oracle用户,作业三(有答案)
  7. Spring Cloud Gateway (七)处理流程解析
  8. JavaWeb——响应编码与请求编码
  9. swagger map示例_Android Google Map Street View示例
  10. Windows批处理(.bat)常用命令教程
  11. VS2008中关于“加载安装组件时遇到问题。取消安装”的解决办法
  12. php 图片印章_PHP实现中文圆形印章的特效
  13. windows安装yarn 详细教程
  14. 国内最新可用Google谷歌镜像网站入口网站网址
  15. Element UI 之 Tabs 栏下拉菜单的实现
  16. FlashFxp配置ftp
  17. c语言输入r1 r2垫片的面积,C语言上机实验答案Word版
  18. R Failed to install 'unknown package' from GitHub: schannel: failed to receive handshake, SSL/TLS
  19. 提到HDFS就会想到机架感知,那么机架感知你真的知道是什么吗?
  20. php里面的箭头怎么打出来,PHP打印左右箭头图案的实现方法(代码示例)

热门文章

  1. sql语言学习——数据定义语言
  2. 刘慈欣一些小说中出现的科技,技术
  3. CentOS8(8.2)安装mysql8
  4. 光猫虚拟服务器无法使用,光猫怎么配置虚拟服务器
  5. liunx下查看tomcat占用的端口号
  6. 查看tomcat的端口号
  7. 最简单网站视频加速方法
  8. 二叉树(Binary Tree,BT)的概念和性质
  9. Java 多线程学习笔记(狂神)
  10. uA741运算放大器电路基本原理