亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python3 讀寫(xiě)文件換行符的方法

 更新時(shí)間:2018年04月09日 10:40:36   作者:zhouguoqionghai  
下面小編就為大家分享一篇python3 讀寫(xiě)文件換行符的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

最近在處理文本文件時(shí),遇到編碼格式和換行符的問(wèn)題。

基本上都是GBK 和 UTF-8 編碼的文本文件,但是python3 中默認(rèn)的都是按照 utf-8 來(lái)打開(kāi)。用不正確的編碼參數(shù)打開(kāi),在讀取內(nèi)容時(shí),會(huì)拋出異常。

open(dirpath + "\\" + file, mode = "r+", encoding = "gbk", newline = "")

捕獲拋出的異常,關(guān)閉文件。使用另外一種編碼格式打開(kāi)文件再重新讀取。

讀取文件時(shí),

newline參數(shù)用來(lái)指定讀取時(shí),對(duì)換行符的處理。缺省為 None,表示通用的換行符(“\n”),即文件的換行符是啥,讀出來(lái)都是 “\n”.

newline = "" 表示讀取的換行符保持不變,原來(lái)是啥,讀出來(lái)還是啥。

newline = “\n” 表示遇到 "\n" 才一行結(jié)束,“\r” 像其他普通字符一樣對(duì)待。

newline = “\r” 表示遇到 "\r" 才一行結(jié)束,“\n” 像其他普通字符一樣對(duì)待。

在文件寫(xiě)入時(shí),

newline = None時(shí),寫(xiě)入的“\n” 自動(dòng)都變?yōu)橄到y(tǒng)默認(rèn)的換行符。所以 “\r\n” 在windows下會(huì)變成“\r\r\n”寫(xiě)入。

newline = "" 表示不做任何轉(zhuǎn)換寫(xiě)入。

newline = “\n” 表示不做任何轉(zhuǎn)換寫(xiě)入。

newline = “\r” 表示將 “\n” 和 "\r" 都當(dāng)做 "\r" 進(jìn)行寫(xiě)入,所以“\r\n” 會(huì)變成 “\r\r”進(jìn)行寫(xiě)入。

案例:將源碼下的所有makefile 文件中的 -c 參數(shù)前,加上 -g 選項(xiàng)。

import os
import re
os.chdir(r"E:\code")
s = os.walk(".")
pattern = re.compile(r"\s-c\s")
for dirpath, dirnames, filenames in s:
	for file in filenames:
		if file.endswith(".mak") or "makefile" in file: #部分以 .mak 結(jié)尾,部分以makefile命名
			print(file)
			with open(dirpath + "\\" + file, mode = "r+", encoding = "gbk", newline = "") as f: #newline為空串表示換行符不轉(zhuǎn)換
				try: #編碼問(wèn)題造成的異常
					lines = f.readlines() #一次讀取所有的行到內(nèi)存
					f.seek(0)    #回到文件起始處
					for line in lines:
						#newline = line.replace(" -c "," -g -c ")
						newline= re.sub(pattern, " -g -c ", line)
						f.write(newline)
				except ValueError:
					f.close()
					with open(dirpath + "\\" + file, mode = "r+", encoding = "utf-8", newline = "") as fnew:
						try: 
							lines = fnew.readlines() 
							fnew.seek(0)    
							for line in lines:
								#newline = line.replace(" -c "," -g -c ")
								newline= re.sub(pattern, " -g -c ", line)
								fnew.write(newline)
						except ValueError:
							print("*************** " + dirpath + "\\" + file) #打印utf-8 和 gbk 之外編碼的文件名

以上這篇python3 讀寫(xiě)文件換行符的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)一鍵自動(dòng)分類管理文件

    Python實(shí)現(xiàn)一鍵自動(dòng)分類管理文件

    經(jīng)常雜亂無(wú)章的文件夾會(huì)讓我們找不到所想要的文件,所以本文小編特意為大家介紹了如何制作一個(gè)可視化GUI界面,通過(guò)輸入路徑一鍵點(diǎn)擊實(shí)現(xiàn)文件分門(mén)別類的歸檔,希望對(duì)大家有所幫助<BR>
    2024-01-01
  • python pandas寫(xiě)入excel文件的方法示例

    python pandas寫(xiě)入excel文件的方法示例

    這篇文章主要介紹了python pandas寫(xiě)入excel文件的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • python 判斷是否為正小數(shù)和正整數(shù)的實(shí)例

    python 判斷是否為正小數(shù)和正整數(shù)的實(shí)例

    這篇文章主要介紹了python 判斷是否為正小數(shù)和正整數(shù)的實(shí)例的相關(guān)資料,這里提供實(shí)例,實(shí)例注釋說(shuō)明很清楚,需要的朋友可以參考下
    2017-07-07
  • Python中selenium獲取token的方法

    Python中selenium獲取token的方法

    本文主要介紹了Python中selenium獲取token的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python實(shí)現(xiàn)三次密碼驗(yàn)證的示例

    python實(shí)現(xiàn)三次密碼驗(yàn)證的示例

    這篇文章主要介紹了python實(shí)現(xiàn)三次密碼驗(yàn)證的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • 淺析Python中的for 循環(huán)

    淺析Python中的for 循環(huán)

    這篇文章主要介紹了淺析Python中的for 循環(huán)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • matplotlib實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)刷新的示例代碼

    matplotlib實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)刷新的示例代碼

    這篇文章主要介紹了matplotlib實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)刷新的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法示例

    Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法,涉及Python htmlparser及docx模塊的相關(guān)使用技巧,需要的朋友可以參考下
    2017-11-11
  • Python3爬蟲(chóng)中識(shí)別圖形驗(yàn)證碼的實(shí)例講解

    Python3爬蟲(chóng)中識(shí)別圖形驗(yàn)證碼的實(shí)例講解

    在本篇內(nèi)容里小編給大家分享的是關(guān)于Python3爬蟲(chóng)中識(shí)別圖形驗(yàn)證碼的實(shí)例講解內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • Python中卷積神經(jīng)網(wǎng)絡(luò)(CNN)入門(mén)教程分分享

    Python中卷積神經(jīng)網(wǎng)絡(luò)(CNN)入門(mén)教程分分享

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)是一類特別適用于處理圖像數(shù)據(jù)的深度學(xué)習(xí)模型,本文介紹了如何使用Keras創(chuàng)建一個(gè)簡(jiǎn)單的CNN模型,并用它對(duì)手寫(xiě)數(shù)字進(jìn)行分類,需要的可以參考一下
    2023-05-05

最新評(píng)論