作者:二狗子 | 来源:互联网 | 2023-02-01 17:47
你可以切掉最后一个角色:
read_line = read_line[:len(read_line)-1]
也许更好的方法是使用字符串库:
read_line = strings.TrimSuffix(read_line, "\n")
putu..
11
如果您想逐行读取文件,使用起来bufio.Scanner
会更容易.扫描仪不包括endline
(\n
或\r\n
)进入生产线.
file, err := os.Open("yourfile.txt")
if err != nil {
//handle error
return
}
defer file.Close()
s := bufio.NewScanner(file)
for s.Scan() {
read_line := s.Text()
// other code what work with parsed line...
}
如果你想删除endline
,我建议你使用TrimRightFunc
,即
read_line = strings.TrimRightFunc(read_line, func(c rune) bool {
//In windows newline is \r\n
return c == '\r' || c == '\n'
})
更新:
正如@GwynethLlewelyn指出的那样,使用TrimRight
将更简单(更清洁),即
read_line = strings.TrimRight(read_line, "\r\n")
在内部,TrimRight
函数调用TrimRightFunc
,如果它匹配作为第二个参数给出的任何字符,将删除该字符TrimRight
.
1> Alex Lew..:
你可以切掉最后一个角色:
read_line = read_line[:len(read_line)-1]
也许更好的方法是使用字符串库:
read_line = strings.TrimSuffix(read_line, "\n")
尝试`import“ strings”`:-)
您必须使用结果:read_line = read_line [:len(read_line)+1]
2> putu..:
如果您想逐行读取文件,使用起来bufio.Scanner
会更容易.扫描仪不包括endline
(\n
或\r\n
)进入生产线.
file, err := os.Open("yourfile.txt")
if err != nil {
//handle error
return
}
defer file.Close()
s := bufio.NewScanner(file)
for s.Scan() {
read_line := s.Text()
// other code what work with parsed line...
}
如果你想删除endline
,我建议你使用TrimRightFunc
,即
read_line = strings.TrimRightFunc(read_line, func(c rune) bool {
//In windows newline is \r\n
return c == '\r' || c == '\n'
})
更新:
正如@GwynethLlewelyn指出的那样,使用TrimRight
将更简单(更清洁),即
read_line = strings.TrimRight(read_line, "\r\n")
在内部,TrimRight
函数调用TrimRightFunc
,如果它匹配作为第二个参数给出的任何字符,将删除该字符TrimRight
.
使用`read_line = strings.TrimRight(read_line,"\ r \n")`这不是更容易吗?