日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2025/3/12 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python修改文件格式为unix_软件测试技术之如何用python在Windows系统下,生成UNIX格式文件... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文將帶你了解軟件測試技術之如何用python在Windows系統下,生成UNIX格式文件,希望對大家學測試技術有所幫助

如何用python在Windows系統下,生成UNIX格式文件

平時測試工作中,少不了制造測試數據。最近一個項目,我就需要制造一批可在UNIX下正確讀取的文件。為確保這批文件能從FTP下載成功,開發叮囑我:“文件中凡是遇到換行,換行符必須是UNIX下的LF,而不是Dos\Windows下的CRLF。”

換行,在普通文檔編輯中,就是按下“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:

使用Notepad++打開原文件,按下組合鍵Ctrl+F后,在彈框中選擇“替換”欄,在“查找目標”輸入框填寫“\r\n”,“替換為”輸入框填寫“\n”,“查找模式”選擇“擴展(\n\r\t\0\x...)”,點擊“替換所有打開文件”后,一一保存文件即可。

然而把所有的文件保存一遍,并不能提升測試的幸福感。我追求的是盡量減少重復而繁重的手工勞動,解放雙手,高效測試!類似這樣的能力瓶頸,從我進入測試行業開始,就不斷擠占著我的業余時間。為了更好的提高自己,系統地學習測試開發所必需的技能,我報名參加了吳老的測試開發培訓班。

截至目前,吳老已經授課兩個多月,我從無到有,學習了很多基本的python開發知識,也偶爾能接觸到一些巧妙的編程思維。正好這次的數據準備,給我提供了一個實踐的契機,讓我運用最近學習的文件操作知識,體驗了一次局部自動化的樂趣。

下面給大家分享一下我這次愉快的實踐內容,由于真實的測試數據略有復雜,這里就用簡單的兩行數字來舉個栗子。

首先按上課所講的內容,依葫蘆畫瓢,使用Notepad++創建文件并寫入文本內容:

1 ? #coding:utf-8(設定文件編碼格式)

2 import os

3 import time

4

5 #切換到創建文件目錄

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

7

8 #新建創建文件函數

9 def ? create_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 import os

3

4 #文件路徑準備

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

6

7 #遍歷路徑下目錄,文件夾,文件

8 for ? root,dirs,files in os.walk(route):

9???? ? #遍歷文件

10???? for ? name in files:

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(設定文件編碼格式)

import os

import time

#切換到創建文件目錄

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

#新建創建文件函數

def create_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)”進行提問,也可以來吳老的測試開發培訓班一起學習。為了更全面的提升,為了更豐厚的待遇,也為了更美好的生活,讓我們在光榮之路一起奮斗!

本文由職坐標整理并發布,希望對同學們有所幫助。了解更多詳情請關注職坐標軟件測試之測試技術頻道!

總結

以上是生活随笔為你收集整理的python修改文件格式为unix_软件测试技术之如何用python在Windows系统下,生成UNIX格式文件...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲麻豆一区二区三区 | 亚洲视频色 | 国产一区麻豆 | 调教撅屁股啪调教打臀缝av | 欧美日韩一区二区三区在线 | 久久久久久久久久久久国产精品 | 大尺度做爰啪啪床戏 | 天堂av在线资源 | 欧美亚洲国产日韩 | 中文字幕日韩在线播放 | 久久精品国产精品亚洲色婷婷 | 久久久久久久久久久久久久av | 五月天综合久久 | 在线播放你懂的 | 国产欧美网站 | 91视频三区| 超碰在线人人 | 深夜视频一区二区三区 | 成人一区二区三区在线观看 | 一个人在线观看免费视频www | 成人亚洲免费 | 久久a久久 | 久久久久久久九九九九 | 国产精品国语 | 韩国性猛交╳xxx乱大交 | 色窝av | 男男车车的车车网站w98免费 | 午夜免费成人 | 尤物在线精品 | av网页在线| 欧美老肥婆性猛交视频 | 国产精品久久久久久久久久久久久久 | 日韩毛片儿 | 日韩专区在线播放 | 久操精品在线 | 夜夜嗨av一区二区 | 成人深夜视频在线观看 | 午夜三级视频 | 国产免费91 | 国内精品人妻无码久久久影院蜜桃 | 91成人在线播放 | 夜夜爽夜夜操 | 欧美一区2区 | 1000部啪啪未满十八勿入超污 | 一区两区小视频 | 国产精品无码一区二区三区在线看 | 日本japanese乳偷乱熟 | 欧美成人免费看 | www黄色片| 日韩欧美国产高清91 | 欧美黄色aaa | 国产日韩精品视频 | 91午夜理伦私人影院 | 男女啪啪资源 | 天堂在线观看免费视频 | 一级黄色片国产 | 伊人网址 | 超碰凹凸| 三年电影在线观看 | 国产日韩欧美精品一区二区 | 久久久在线视频 | 亚洲天堂男人的天堂 | 手机看片久久久 | 99久久精品国产成人一区二区 | 国产精品一区二区三区免费视频 | 欧美一区二区三区久久 | 国产精品自拍视频一区 | 岛国福利视频 | 青青国产 | 欧美色涩| 欧美精品videos极品 | 亚洲精品久久久中文字幕痴女 | 又黄又骚又爽 | 久久国产精品电影 | 中文字幕免 | 色哟哟视频网站 | 日韩高清国产一区在线 | 老熟妇精品一区二区三区 | 97神马影院| 国产13页| 99ri国产在线 | 麻豆免费观看视频 | 日韩国产电影 | 成人毛片视频免费看 | 国产精品熟女视频 | 人人操在线播放 | 一区二区三区四区日韩 | 丝袜性爱视频 | 国内精品久久久久久 | 欧美日韩乱 | 天堂影视在线观看 | 熟妇人妻久久中文字幕 | 国产精品久久久久久久久久东京 | 欧美成人手机在线 | 干b视频在线观看 | 五月综合久久 | 中文字幕乱妇无码av在线 | 国语一区| 美日韩免费 |