【问题标题】:.strip() doesn't work for ultra-long string.strip() 不适用于超长字符串
【发布时间】:2022-01-14 03:51:04
【问题描述】:

我对“\n”删除问题深感沮丧。

虽然它非常适用于短字符串,例如:

str1 = "\n Star\nbucks has\n the \nbest coffee \n"
print(type(str1))
newstr = str1.strip()
print(newstr)

输出:

<class 'str'>
Star
bucks has
 the
best coffee

...当我尝试对以前从文件中读取的超长字符串(具有相同的类型 - !)执行相同操作时,它根本不起作用(获得了 Netscaler 配置使用 get.requests, 大约 450Kb) ,没有任何反应,文本保持原样,所有的“\n”都还在。

同样,从文件中读取的短字符串和长字符串具有相同的类型 -

这可能是什么问题?

请看长字符串的一小部分:

192.168.113.115\nadd server H_ARCAAZ13XV 192.168.113.117\nadd server H_ARCAAZ11LG 192.168.213.154\nadd server H_ARCAAZ12LG 192.168.213.156\nadd server H_ARCAAZ13LG 192.168.213.158\nadd server H_ARCAAZ11RF 192.168.213.153\nadd server H_ARCAAZ12RF 192.168.213.155\nadd server H_ARCAAZ13RF 192.168.213.157\nadd server H_DE1-S912 172.25.235.20\nadd server H_DE1-S911 192.168.238.40\nadd server H_EXCMBX12XV 192.168.114.18\nadd server H_EXCMBX13XV 192.168.114.20\nadd server H_EXCMBX14XV 192.168.114.21\nadd server H_PBIAAZ01XV 192.168.137.182\nadd server H_PBIAAZ02XV 192.168.137.183\nadd server H_PBIAAZ03XV 192.168.137.184\nadd server H_PBIAAZ05DR 192.168.104.104\nadd server H_PBIAAZ06DR 192.168.104.108\nadd server H_PBIAAZ07DR 192.168.104.106\nadd server H_PBIAAZ08DR 192.168.104.110\nadd server H_SSMSM05XV 192.168.120.235\nadd server H_OPEAAZ01XV 192.168.112.51\nadd server H_OPEAAZ02XV 192.168.112.52\nadd server H_CUBAAZ11LG 192.168.213.148\nadd server H_CUBAAZ12LG 192.168.213.166\nadd server H_CUBAAZ11XV 192.168.113.125\nadd server H_CUBAAZ12XV 192.168.113.126\nadd server H_SPSWEB01AZ 192.168.210.34\nadd server H_SPSWEB02AZ 192.168.210.35\nadd server H_EMGAAZ01XV 192.168.113.127\nadd server H_EMGAAZ02XV 192.168.113.128\nadd server H_PBIAAZ09XV 192.168.137.191\nadd server H_IMOSAAZ01AZ 192.168.212.57\nadd server H_IMOSAAZ02AZ 192.168.212.58\nadd server 192.168.206.178 192.168.206.178\nadd server opeaAZ02qa 192.168.206.181\nadd server H_LYCEPS01XV 192.168.125.51\nadd server H_LYCEPS02XV 192.168.125.52\nadd server H_LYCEPS03XV 192.168.125.53\nadd server H_OFFAAZ01XV 192.168.120.152\nadd server H_OFFAAZ02XV 192.168.120.153\nadd server H_CTXSTF01XV 192.168.128.111\nadd server H_CTXSTF02XV 192.168.128.110\nadd server H_SPSLGL01XV 192.168.110.21\nadd server H_SPSLGL02XV 192.168.110.22\nadd server H_FAX01LONUK 192.168.115.11\nadd server H_FAX02LONUK 192.168.115.12\nadd server H_ADSVR01XV 192.168.120.163\nadd server H_ADSVR02XV 192.168.120.164\nadd server H_MSLG-XVSAAZ01 192.168.206.75\nadd server H_MSLG-XVSAAZ02 192.168.206.74\nadd server H_MSXV-XVSAAZ01 192.168.106.152\nadd server H_MSXV-XVSAAZ02 192.168.106.153\nadd server 172.20.0.20 172.20.0.20\nadd server 172.20.0.10 172.20.0.10\nadd server 172.20.0.101 172.20.0.101\nadd server H_EPMWEB01XV 192.168.119.47\nadd server H_EPMWEB02XV 192.168.119.48\nadd server 192.168.206.171 192.168.206.171\nadd server 192.168.206.58 192.168.206.58\nadd server 192.168.213.160 192.168.213.160\nadd server 192.168.213.159 192.168.213.159\nadd server 192.168.213.162 192.168.213.162\nadd server 192.168.213.65 192.168.213.65\nadd server 192.168.213.169 192.168.213.169\nadd server 192.168.112.113 192.168.112.113\nadd server H_WGXV-FSMAAZ02 172.16.49.15\nadd server H_WGCN-FSMAAZ02 172.16.49.16\nadd server H_WGXV-SPTAAZ01 172.16.21.170\nadd server H_WGXV-SPTAAZ02 172.16.21.169\nadd server H_WGCN-SPTAAZ01 172.16.1.155\nadd server H_WGCN-SPTAAZ02 172.16.1.157\nadd server H_MSLG-EWASVR01 192.168.206.77\nadd server H_MSLG-EWASVR02 192.168.206.78\nadd server H_MSXV-MGOOPS01 192.168.120.139\nadd server H_MSXV-MGOOPS03 192.168.120.140\nadd server H_EPMWEB01AZ 192.168.219.30\nadd server H_EPMWEB02AZ 192.168.219.31\nadd server H_CUBWEB01XV 192.168.113.28\nadd server H_CUBWEB02XV 192.168.113.29\nadd server H_EPMAAZ01XV 192.168.119.49\nadd server H_EPMAAZ02XV 192.168.119.50\nadd server H_EPMAAZ01AZ 192.168.219.32\nadd server H_EPMAAZ02AZ 192.168.219.33\nadd server H_STSAAZ01LG 192.168.206.51\nadd server H_STSAAZ02LG 192.168.206.52\nadd server H_RVCAAZ01LG 192.168.213.115\nadd server H_RVCAAZ02LG 192.168.213.116\nadd server H_RVCAAZ03LG 192.168.213.61\nadd server H_RVCAAZ04LG 192.168.213.62\nadd server H_MSLG-MODAAZ01 192.168.206.92 -comment NZ871779\nadd server H_MSLG-MODAAZ02 192.168.206.91 -comment NZ871779\nadd server H_MSXV-MODAAZ01 192.168.106.158\nadd server H_MSXV-MODAAZ02 192.168.106.159\nadd server H_MSIT-XVSAAZ01 192.168.206.162\nadd server H_MSIT-XVSAAZ02 192.168.206.163\nadd server H_MSXV-EWASVR01 192.168.106.154\nadd server H_MSXV-EWASVR02 192.168.106.155\nadd server H_MSIT-MODAAZ01 192.168.222.109\nadd server H_MSIT-MODAAZ02 192.168.222.110\nadd server H_MSLG-XVSWEB01 192.168.222.106\nadd server H_MSLG-XVSWEB02 192.168.222.105\nadd server H_MSLG-MODAAZ03 192.168.222.116\nadd server H_MSLG-MODAAZ04 192.168.222.117\nadd server H_BISIS01XV01 192.168.118.15\nadd server H_BISIS01XV02 192.168.118.16\nadd server H_MSXV-XVSWEB01 192.168.113.134\nadd server H_MSXV-XVSWEB02 192.168.113.135\nadd server H_MSFF-EWASVR01 192.168.222.135\nadd server H_MSFF-EWASVR02 192.168.222.136\nadd server H_MSIT-MODAAZ03 192.168.222.148\nadd server H_MSIT-MODAAZ04 192.168.222.57\nadd server H_MSFF-XVSWEB01 192.168.222.146\nadd server H_MSFF-XVSWEB02 192.168.222.147\nadd server H_MSIT-XVSWEB02 192.168.222.60\nadd server H_MSIT-XVSWEB01 192.168.222.59\nadd server H_MSXV-SPSAAZ05 192.168.110.55\nadd server H_MSXV-SPSAAZ06 192.168.110.57\nadd server H_MSXV-SPSAAZ07 192.168.110.58\nadd server H_MSXV-SPSAAZ08 192.168.110.60\nadd server H_MSXV-SPSAAZ11 192.168.110.65\nadd server H_MSXV-SPSAAZ12 192.168.110.63\nadd server H_MSXV-SPSAAZ13 192.168.110.62\nadd server H_MSXV-SPSAAZ14 192.168.110.64\nadd server H_MSRF-JEASVR01 172.16.1.177\nadd server H_GELG-RTPSFN01 192.168.229.76\nadd server H_GELG-RTPSFN02 192.168.229.77\nadd server H_GELG-RTPSFN03 192.168.229.78\nadd server H_GELG-RTPDSN01 192.168.229.79\nadd server H_GELG-RTPDSN02 192.168.229.81\nadd server H_GELG-RTPDSN03 192.168.229.80\nadd server H_GEXV-RTPSFN01 192.168.113.142\nadd server H_GEXV-RTPSFN02 192.168.113.141\nadd server H_GEXV-RTPSFN03 192.168.113.143\nadd server H_GEXV-RTPDSN01 192.168.113.156\nadd server H_GEXV-RTPDSN02 192.168.113.153\nadd server H_GEXV-RTPDSN03 192.168.113.155\nadd server H_CUBAAZ11LG2 192.168.206.180\nadd server H_MSLG-ABAAAZ01 192.168.221.61\nadd server H_MSLG-ABAAAZ02 192.168.227.217\nadd server H_WGRF-GSXAAZ03 172.16.1.179\nadd server H_WGQA-GSXAAZ01 172.16.1.180\nadd server H_WGCN-GSXAAZ02 172.16.1.181\nadd server H_WGCN-GSXAAZ03 172.16.1.182\nadd server H_WGXV-GSXAAZ02 172.16.21.166\nadd server H_WGXV-GSXAAZ03 172.16.21.182\nadd server 192.168.240.180 192.168.240.180\nadd server 10.3.74.180 10.3.74.180\nadd server H_SSXV-TSGSVR11 192.168.120.148\nadd server H_MSXV-ABAAAZ01 192.168.113.151\nadd server H_MSXV-ABAAAZ02 192.168.113.145\nadd server H_MSANOD11AZ 192.168.206.35\nadd server H_MSANOD12AZ 192.168.206.254\n

【问题讨论】:

  • string.strip() 不带参数removes white spaces from left and right of string。提到的长字符串不包含前导空格(或换行符)字符。
  • 抱歉,为什么呢?短字符串在中间包含“\n”,以及长字符串......像这里:192.168.113.115\nadd server H_ARCAAZ13XV
  • 是的,string.strip() 对它没有任何作用,正如您在输出中显示的那样。换行正常发生。
  • 这能回答你的问题吗? How to strip all whitespace from string

标签: python-3.x


【解决方案1】:

str.strip() 不应该做你想做的事。它从字符串的开头和结尾删除作为其参数给出的字符(默认为空格),而不是从中间的某个位置。您只是认为它已经删除了 \n 的出现,因为 print() 的工作方式:它执行 \n 作为换行符。请注意,您认为删除了 \ns 的短字符串会打印成多行。

相反,您想使用str.replace(),如下所示:

newstr = str1.replace('\n', '')

这也适用于较长的字符串,因为字符串的长度从来不是问题。

【讨论】:

  • 不幸的是, .replace('\n', '') 对我没有帮助, \n 仍然在这里: with open('IntDC1.txt') as f: mylist = f .read() conf = mylist.replace('\n', '') print(conf)
  • 如果您从文件中读取文本并将其存储在行列表中,您可以使用''.join(mylist) 将这些行连接成一个字符串。
  • 我很遗憾地报告,它也不能解决这个问题...... with open('IntDC1.txt') as f: print (" ".join(line.rstrip('\ n') 用于 f)) 中的行
  • 哦,我刚拿到这个!!!文件本身是超长字符串,它是通过 get.requests 创建的: lbvs_response=requests.get("192.168.150.7/nitro/v1/config/…, NITRO_PWD),verify=False) Configuration=lbvs_response.text WriteImplementationScriptToFile=open('IntDC1.txt' , "a") WriteImplementationScriptToFile.write(str(Configuration)) 我从 get.request 获得的数据已经包含这些 "\n" 所以,我的任务是相反的 - 我必须删除 \n 并拆分一个超长串成行。
  • 好的,那么你可以使用str.split('\n'),其中str是长字符串的名称。这将返回一个行列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 2011-11-07
  • 1970-01-01
  • 2017-03-25
相关资源
最近更新 更多