欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言刪除文本文件中的指定行操作代碼

 更新時間:2023年12月20日 10:50:29   作者:畱?  
假設(shè)現(xiàn)在有一個文本文件,我們需要刪除文件中亂碼的行。我們可以使用go的os庫來處理文件,遍歷整個文件然后將除過亂碼的行寫入一個新文件,以此來實現(xiàn)我們的需求,這篇文章主要介紹了Go語言刪除文本文件中的指定行,需要的朋友可以參考下

1. 思路

假設(shè)現(xiàn)在有一個文本文件,我們需要刪除文件中亂碼的行。我們可以使用go的os庫來處理文件,遍歷整個文件然后將除過亂碼的行寫入一個新文件,以此來實現(xiàn)我們的需求。

2. 處理文件

假設(shè)我們現(xiàn)在有一個配置文件hello.conf,用戶經(jīng)常修改導(dǎo)致文件錯亂或出現(xiàn)亂碼情況,我們需要去除亂碼行以保證配置文件可用。
如下一個示例文件,注釋使用#加文本,配置信息使用等號分隔,我們需要去除掉文件中的空行、亂碼行、不包含=和#的行和包含#號卻不在開頭的行。

#系統(tǒng)版本
version=v1.0.0
#系統(tǒng)平臺
platform=arm
#數(shù)據(jù)庫信息
database=127.0.0.1;3306;123456;mysql
@1234
#https端口
httpsport=8443
8443#dd
#用于開啟https的設(shè)置
enablehttps=false
#插入數(shù)據(jù)庫是否攜帶服務(wù)名稱
is.add.name=false
#設(shè)備型號
model=RTD-1

首先以可讀寫的方式打開文件,并使用換行符來遍歷文件。通過特定條件篩選出可用行,并將其寫入新文件中,最后修改新創(chuàng)建的文件,完成處理。

package 
import (
	"bufio"
	"io"
	"log"
	"os"
	"strings"
)
const (
	FILE = "hello.conf"
	NEWFILE = "hellonew.conf"
)
func main() {
	deleteBadLine()
}
func deleteBadLine() {
	//以可讀寫方式打開文件
	file, err := os.OpenFile(FILE, os.O_RDWR, 0666)
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()
	//創(chuàng)建一個文件并以可讀寫方式打開
	destFile, err := os.OpenFile(NEWFILE, os.O_CREATE | os.O_RDWR, 0666)
	if err != nil {
		log.Fatal(err)
	}
	defer destFile.Close()
	//將文件內(nèi)容寫入緩沖區(qū)中
	reader := bufio.NewReader(file)
	for {
		//以換行符來遍歷文件
		line, err := reader.ReadString('\n')
		if err != nil {
			log.Fatal(err)
		}
		//讀到文件結(jié)尾
		if err == io.EOF {
			break
		}
		//根據(jù)特定條件篩選行
		if len(line) == 0 || line == "\r\n" || !strings.Contains(line, "=") && !strings.Contains(line, "#") || strings.Contains(line, "#") && !strings.HasPrefix(line, "#") {
			log.Println("Bad line:", line)
			continue
		} else {
			log.Println("Normal line:", line)
			//將可用的行寫入新文件
			if _, err = destFile.WriteString(line); err != nil {
				log.Fatal(err)
			}
		}
	}
	//處理完畢,將新創(chuàng)建的文件重命名
	//linux系統(tǒng)可以通過重命名來覆蓋靜態(tài)文件,若其他系統(tǒng),則需要先進(jìn)行刪除或備份,再重命名
	os.Rename(NEWFILE, FILE)
}

3. 處理后的文本文件

#系統(tǒng)版本
version=v1.0.0
#系統(tǒng)平臺
platform=arm
#數(shù)據(jù)庫信息
database=127.0.0.1;3306;123456;mysql
#https端口
httpsport=8443
#用于開啟https的設(shè)置
enablehttps=false
#插入數(shù)據(jù)庫是否攜帶服務(wù)名稱
is.add.name=false
#設(shè)備型號
model=RTD-1

到此這篇關(guān)于Go語言刪除文本文件中的指定行的文章就介紹到這了,更多相關(guān)Go語言刪除指定行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用go gin server來做文件上傳服務(wù)

    用go gin server來做文件上傳服務(wù)

    今天小編就為大家分享一篇關(guān)于用go gin server來做文件上傳服務(wù),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Go語言Http?Server框架實現(xiàn)一個簡單的httpServer

    Go語言Http?Server框架實現(xiàn)一個簡單的httpServer

    這篇文章主要為大家介紹了Go語言Http?Server框架實現(xiàn)一個簡單的httpServer抽象,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Go語言結(jié)構(gòu)體定義和使用方法

    Go語言結(jié)構(gòu)體定義和使用方法

    這篇文章主要介紹了Go語言結(jié)構(gòu)體定義和使用方法,以實例形式分析了Go語言中結(jié)構(gòu)體的定義和使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go變量作用域代碼實戰(zhàn)詳解

    Go變量作用域代碼實戰(zhàn)詳解

    Go語言提供了幾種不同的作用域類型,使得開發(fā)者可以靈活地控制變量的可見范圍和生命周期,本章節(jié)將詳細(xì)概述Go語言中變量的各種作用域,幫助讀者更好地理解和應(yīng)用這些概念,需要的朋友可以參考下
    2024-06-06
  • go語言讀取json并下載高清妹子圖片

    go語言讀取json并下載高清妹子圖片

    前面我們介紹了使用python下載高清妹子圖,作為程序猿,我們當(dāng)然不能只會一種語言,今天我們就來使用go語言來讀取API來下載妹子圖吧,有需要的宅男們可以參考下。
    2015-03-03
  • Go語言對字符串進(jìn)行SHA1哈希運算的方法

    Go語言對字符串進(jìn)行SHA1哈希運算的方法

    這篇文章主要介紹了Go語言對字符串進(jìn)行SHA1哈希運算的方法,實例分析了Go語言針對字符串操作的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Golang信號處理及如何實現(xiàn)進(jìn)程的優(yōu)雅退出詳解

    Golang信號處理及如何實現(xiàn)進(jìn)程的優(yōu)雅退出詳解

    這篇文章主要給大家介紹了關(guān)于Golang信號處理及如何實現(xiàn)進(jìn)程的優(yōu)雅退出的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • golang中結(jié)構(gòu)體嵌套接口的實現(xiàn)

    golang中結(jié)構(gòu)體嵌套接口的實現(xiàn)

    本文主要介紹了golang中結(jié)構(gòu)體嵌套接口的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 使用golang腳本基于kubeadm創(chuàng)建新的token(問題分析)

    使用golang腳本基于kubeadm創(chuàng)建新的token(問題分析)

    這篇文章主要介紹了使用golang腳本基于kubeadm創(chuàng)建新的token(問題分析),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-10-10
  • Golang創(chuàng)建第一個web項目(Gin+Gorm)

    Golang創(chuàng)建第一個web項目(Gin+Gorm)

    本文主要介紹了Golang創(chuàng)建第一個web項目(Gin+Gorm),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06

最新評論