它的函数原型:string.strip(s[, chars]),
它返回的是字符串的副本,并删除前导和后缀字符。(意思就是你想去掉字符串里面的哪些字符,那么你就把这些字符当参数传入。此函数只会删除头和尾的字符,中间的不会删除。)如果strip()的参数为空,那么会默认删除字符串头和尾的空白字符(包括\n,\r,\t这些)。
def left_remove(self):
'''删除文件里左边的空格与右边的句号,并且切割顿号后面的前面的数字,以追加的方式‘a+’追加写入新的文件中'''
with open(self.path,'r+', encoding='utf-8') as anquan:
anquan_lines = anquan.readlines()
for i in anquan_lines:
# print(i)
null_rstring = i.rstrip('。') # 清除字符串 右边的 句号
print(null_rstring)
str_list = null_rstring.split('、') #以顿号去切割字符串
# print(str_list)
# print(len(str_list))
# print(null_string)
path_f = self.path_a[0] + '_副本.txt'
with open(path_f, 'a+') as fuben:
if len(str_list) >= 2:
path_i = fuben.write(str_list[1] )
elif len(str_list) == 1:
path_w = fuben.write(str_list[0])
这段代码中之清除了最后一行的句号,其他行的没有清除
原因:
因为其他的行中最后都有个默认的换行‘\n’。
解决办法:
要在null_rstring = i.rstrip(’。’)中加入句号后面加入\n,这样就可以清除句号了
代码写成null_rstring = i.rstrip(’。\n’)
衍生问题:
连换行符删除后,所有的内容都在一行中显示,没有换行了
要解决这个问题就在逐行写入的时候加入 \n
代码如下:
def left_remove(self):
'''删除文件里左边的空格与右边的句号,并且切割顿号后面的前面的数字,以追加的方式‘a+’追加写入新的文件中'''
with open(self.path,'r+', encoding='utf-8') as anquan:
anquan_lines = anquan.readlines()
for i in anquan_lines:
# print(i)
null_rstring = i.rstrip('。\n') # 清除字符串 右边的 句号
print(null_rstring)
str_list = null_rstring.split('、') #以顿号去切割字符串
# print(str_list)
# print(len(str_list))
# print(null_string)
path_f = self.path_a[0] + '_副本.txt'
with open(path_f, 'a+') as fuben:
if len(str_list) >= 2:
path_i = fuben.write(str_list[1] + '\n')
elif len(str_list) == 1:
path_w = fuben.write(str_list[0] + '\n')
在文件中的结果如下: