平时测试工做中,少不了制造测试数据。最近一个项目,我就须要制造一批可在UNIX下正确读取的文件。为确保这批文件能从FTP下载成功,开发叮嘱我:“文件中凡是遇到换行,换行符必须是UNIX下的LF,而不是Dos\Windows下的CRLF。”python

换行,在普通文档编辑中,就是按下“Enter”键。在编写代码时,就是在文件中写入字符串”\n”。但用python命令w在文件写入换行”\n”之后,因为是Windows系统的原故,会默认把”\n”实际保存为”\r\n”。编程

对于Windows下为什么是”\r\n”,这里引用网上的解释:由于Windows采用了传统的英文打字机模式,它在换行时需分解成两步——回车”\r”和换行”\n”。回车(carriage return,CR)是将小车退回至起点,至关于把光标从行尾切换到行首,换行(line feed,LF)是将小车切换到下一行,这样的组合操做就完成了另起一行的目的。微信

咱们首先确认Windows下的换行是否真的是CRLF:把文件用任意一款文本编辑器(以Notepad++为例)打开,在编辑器的菜单栏中,找到“视图”菜单,点击“显示符号”,勾选“显示全部字符”,就能够显示换行符了。咱们在下图中能够看到,在Windows系统下,文件中的换行符确实是CRLF。编辑器

如何把CRLF变成LF呢?开发给出了一个解决方案。函数

Method A:学习

在Notepad++界面右下角,双击当前文件格式的描述:“Dos\Windows”,点击弹框中的“转换为UNIX格式”,最后保存文件。此时能够看到文件每行结尾都已经展现为“LF”了。测试

虽然整个转换过程极为简单,但要是有一大批这样的文件须要一个个手动转换,我不由感慨光(xīn)阴(hǎo)虚(lèi)度,韶(bù)光(xiǎng)易(dòng)逝。优化

在表达抗议后,开发表示能够优化此方法,即便用文本编辑器的替换功能:编码

Method B:spa

使用Notepad++打开原文件,按下组合键Ctrl+F后,在弹框中选择“替换”栏,在“查找目标”输入框填写“\r\n”,“替换为”输入框填写“\n”,“查找模式”选择“扩展(\n\r\t\0\x...)”,点击“替换全部打开文件”后,一一保存文件便可。

然而把全部的文件保存一遍,并不能提高测试的幸福感。我追求的是尽可能减小重复而繁重的手工劳动,解放双手,高效测试!相似这样的能力瓶颈,从我进入测试行业开始,就不断挤占着个人业余时间。为了更好的提升本身,系统地学习测试开发所必需的技能,我报名参加了吴老的测试开发培训班。

截至目前,吴老已经授课两个多月,我从无到有,学习了不少基本的python开发知识,也偶尔能接触到一些巧妙的编程思惟。正好此次的数据准备,给我提供了一个实践的契机,让我运用最近学习的文件操做知识,体验了一次局部自动化的乐趣。

下面给你们分享一下我此次愉快的实践内容,因为真实的测试数据略有复杂,这里就用简单的两行数字来举个栗子。

首先按上课所讲的内容,依葫芦画瓢,使用Notepad++建立文件并写入文本内容:

1 #coding:utf-8(设定文件编码格式)

2 importos3 importtime4

5 #切换到建立文件目录

6 os.chdir(r"C:\Study\Chestnuts\01data")7

8 #新建建立文件函数

9 defcreate_file():10

11 #构造文件名:以“年月日”为文件名的.dat文件

12 t=time.localtime()13 file_name=time.strftime("%Y-%m-%d",t)+".dat"

14 #建立并打开文件

15 fp=open(file_name,'w+')16 #写入文件内容

17 fp.writelines("12345\n")18 fp.writelines("67890\n")19 #关闭文件

20 fp.close()21

22 #调用函数

23 create_file()

如上图所示,执行脚本就会生成一份原始文件,不过在两行内容的末尾,换行符均显示为CRLF,接下来就是转换的工做了。

Method C:对原文件进行格式转换

若是是对现有的文件进行处理,可使用Notepad++再编写一个转换的脚本。参考网上的方法,使用rU方式读取文件内容,使用wb方式写入文件内容,以下图所示:

1 #coding:utf-8

2 importos3

4 #文件路径准备

5 route=r"C:\Study\Chestnuts\01data"

6

7 #遍历路径下目录,文件夹,文件

8 for root,dirs,files inos.walk(route):9 #遍历文件

10 for name infiles:11 #概括文件名特征

12 if name[-3:]=='dat':13 #拼接文件名(目录+文件名称)

14 catalog=os.path.join(root,name)15 #把全部行分割符替换为换行符\n返回.

16 fp=open(catalog,"rU+")17 #读取文件并保存

18 strings=fp.read()19 fp.close()20 #使用二进制写文件

21 fp1=open(catalog,"wb")22 fp1.seek(0)23 fp1.write(strings)24 fp1.flush()25 fp1.close()

执行这个脚本,就能对现有文件格式进行转换,获得换行符是LF的文件了。

结果是对了,但执行两个脚原本生成一份最终文件,不免让我以为还不够简单。我分析了以上文件转换的代码,发现关键步骤是使用二进制(wb)方式写入文件。

Method D:原文件使用二进制方式写入

既然这样,不如在一开始就使用二进制写文件,一步到位!而且只需把源代码中写入方式(w)变成二进制写入(wb)方式便可。你看,仅仅添加了一个字母,就省去了十几行代码,还达到了预期目标,可谓一举多得!

#coding:utf-8(设定文件编码格式)

importosimporttime#切换到建立文件目录

os.chdir(r"C:\Study\Chestnuts\01data")#新建建立文件函数

defcreate_file():#构造文件名:以“年月日”为文件名的.dat文件

t=time.localtime()

file_name=time.strftime("%Y-%m-%d",t)+".dat"

#建立并打开文件

fp=open(file_name,'wb+')#写入文件内容

fp.writelines("12345\n")

fp.writelines("67890\n")#关闭文件

fp.close()#调用函数

create_file()

窥一斑而见全豹,以上的代码优化,提醒我编程时须要多思考,理清逻辑,最终找到达成目标的最佳方案。在练习编写代码时,不只要认真分析需求,分解步骤,也要注意积累好的方法进行沉淀,这也是我写下本文的目的所在。

若是你们在测试工做中,也遇到了相似的困难,以为本身能力欠缺,指望经过本身编写代码解决问题,欢迎你们咨询我或者吴老。能够加入咱们的“光荣之路python群(457561756)”进行提问,也能够来吴老的测试开发培训班一块儿学习。为了更全面的提高,为了更丰厚的待遇,也为了更美好的生活,让咱们在光荣之路一块儿奋斗!

做者:Flyleaves

出处:http://www.cnblogs.com/Flyleaves/

本文版权归做者、微信公众号光荣之路和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。

如何利用python在一个文档里xie'ru_如何用python在Windows系统下,生成UNIX格式文件...相关推荐

  1. windows上的python能否在unix上使用_怎么用python在Windows系统下,生成UNIX格式文件

    在Windows下换行时,有两个字符:回车(/r)和换行(/n).但在Linux下,只有一个换行(/n)可使用unix2dos和dos2unix命令进行格式的转换: 参数: -k 保持输出文件和输入文 ...

  2. 如何利用python在一个文档里写入长须_Python语法入门—文件处理

    1.什么是文件 文件是操作系统提供给用户/应用程序操作硬盘的一种虚拟的概念/接口 ==计算机三大层次结构== 用户/应用程序(open()) 操作系统(文件) 计算机硬件(硬盘) 2.为何要用文件 = ...

  3. python修改文件格式为unix_软件测试技术之如何用python在Windows系统下,生成UNIX格式文件...

    本文将带你了解软件测试技术之如何用python在Windows系统下,生成UNIX格式文件,希望对大家学测试技术有所帮助 如何用python在Windows系统下,生成UNIX格式文件 平时测试工作中 ...

  4. python将字符串s和换行符写入文件fp_软件测试技术之如何用python在Windows系统下,生成UNIX格式文件...

    本文将带你了解软件测试技术之如何用python在Windows系统下,生成UNIX格式文件,希望对大家学测试技术有所帮助 如何用python在Windows系统下,生成UNIX格式文件 平时测试工作中 ...

  5. python将文件转成linux格式,怎么用python在Windows系统下,生成UNIX格式文件

    如何用python在Windows系统下,生成UNIX格式文件 平时测试工作中,少不了制造测试数据.最近一个项目,我就需要制造一批可在UNIX下正确读取的文件.为确保这批文件能从FTP下载成功,开发叮 ...

  6. python excel 打印文档_教你如何用Python轻轻松松操作Excel、Word、CSV,一文就够了,赶紧码住!!!...

    原标题:教你如何用Python轻轻松松操作Excel.Word.CSV,一文就够了,赶紧码住!!! 作者:奈何缘浅wyj Python 操作 Excel 常用工具 数据处理是 Python 的一大应用 ...

  7. 电脑长截图软件_电脑屏幕长截图+WORD文档里没有插入PDF文件选项时怎么办? 简单一招轻松完成...

    111111        办 公 小 技 巧 在用电脑查看网页时,想把网页上的内容截下来,保存成一张图片,可是内容又不全在一屏里,不能简单的用截屏完成,这时怎么办? 想把一个PDF文件插入到WORD ...

  8. python批量读取图片并复制入word_提取出 Word 文档里的图片 并利用 python 批量转换格式...

    日常工作中,你是否遇到过这样的场景,领导发来一份 Word 文档,要求你将文档中的图片存储到一个文件夹内,并且还要将图片都改成 .jpg 或者 .png,你会怎么办?你是不是一边内心崩溃,一边开始一张 ...

  9. python批量读取图片并复制入word_提取word文档中的图片并使用Python进行批量格式转换,出,Word,里,利用,python...

    日常工作中,你是否遇到过这样的场景,领导发来一份 Word 文档,要求你将文档中的图片存储到一个文件夹内,并且还要将图片都改成 .jpg 或者 .png,你会怎么办?你是不是一边内心崩溃,一边开始一张 ...

最新文章

  1. [01分数规划]【学习笔记】
  2. 版本号控制-搭建gitserver
  3. 讨论一下文章的阅读量 (个人观点)
  4. CF GYM 100703G Game of numbers
  5. 【NOIP校内模拟】T2 字胡串(分治)
  6. 世界地图可以无限放大_不敢相信!世界地图,你竟然骗了我这么多年...
  7. Android手机截图怎么做,手机截屏怎么弄,教您手机截图方法
  8. npm run tsc报错 (声明文件报错||tsc.js报错)
  9. 降低漏洞风险的六大法宝!
  10. 【Three.js】简单地3D工具-Three.js建模入门基础教程
  11. 微信小程序 —— 图片自适应后去掉底部的白边
  12. android APK瘦身全面总结——如何从32.6M到13.6M
  13. ConvMixer:Patches Are All You Need
  14. WinAPI执行外部程序和创建新进程:CreateProcess()的使用
  15. 并发容器J.U.C -- AQS组件(一)
  16. Infortrend存储 EonStor GSi 深度学习AI存储一体机
  17. 小米机器人清理主刷和轴承_小米扫地机器人的噪音感觉有点大怎么办?
  18. 基于AT89C51最小系统的手机遥控车
  19. MATLAB GUI界面
  20. 计算机基础应用试题——第二卷

热门文章

  1. java输出abba_面试-字符串abba匹配问题-java8解决方案
  2. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。...
  3. pack://application:,,,/
  4. 2021威海高考成绩查询,2021年威海夏季高考时间公布
  5. 微信小程序之Js修改元素样式
  6. 安卓自定义控件:画一个正五边形
  7. 用MTALAB绘制铁磁性材料磁滞回线
  8. GUC-4 CopyOnWriteArrayList/CopyOnWriteArraySet
  9. 如何理解金融中的 “头寸”
  10. STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试