国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python3 讀寫文件換行符的方法

2020-02-22 23:38:58
字體:
來源:轉載
供稿:網友

最近在處理文本文件時,遇到編碼格式和換行符的問題。

基本上都是GBK 和 UTF-8 編碼的文本文件,但是python3 中默認的都是按照 utf-8 來打開。用不正確的編碼參數打開,在讀取內容時,會拋出異常。

open(dirpath + "http://" + file, mode = "r+", encoding = "gbk", newline = "")

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

讀取文件時,

newline參數用來指定讀取時,對換行符的處理。缺省為 None,表示通用的換行符(“/n”),即文件的換行符是啥,讀出來都是 “/n”.

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

newline = “/n” 表示遇到 "/n" 才一行結束,“/r” 像其他普通字符一樣對待。

newline = “/r” 表示遇到 "/r" 才一行結束,“/n” 像其他普通字符一樣對待。

在文件寫入時,

newline = None時,寫入的“/n” 自動都變為系統默認的換行符。所以 “/r/n” 在windows下會變成“/r/r/n”寫入。

newline = "" 表示不做任何轉換寫入。

newline = “/n” 表示不做任何轉換寫入。

newline = “/r” 表示將 “/n” 和 "/r" 都當做 "/r" 進行寫入,所以“/r/n” 會變成 “/r/r”進行寫入。

案例:將源碼下的所有makefile 文件中的 -c 參數前,加上 -g 選項。

import osimport reos.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 結尾,部分以makefile命名			print(file)			with open(dirpath + "http://" + file, mode = "r+", encoding = "gbk", newline = "") as f: #newline為空串表示換行符不轉換				try: #編碼問題造成的異常					lines = f.readlines() #一次讀取所有的行到內存					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 + "http://" + 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 + "http://" + file) #打印utf-8 和 gbk 之外編碼的文件名

以上這篇python3 讀寫文件換行符的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孙吴县| 稻城县| 苍山县| 南汇区| 凉山| 榆林市| 中超| 河北省| 马尔康县| 民丰县| 祁阳县| 东海县| 临漳县| 延津县| 北碚区| 江源县| 哈尔滨市| 民丰县| 乃东县| 逊克县| 瑞安市| 梅河口市| 孟村| 丹寨县| 永修县| 黎城县| 建水县| 丹江口市| 晋江市| 呼伦贝尔市| 汉川市| 台安县| 武鸣县| 朝阳区| 泸西县| 荥经县| 汝州市| 太湖县| 宁城县| 凤庆县| 南靖县|