如何解决如何去除不必要的间隙?
我尝试删除行缩进和不必要的。我尝试了 replace、lstrip() 和 strip() 函数,但它并没有像我想象的那样工作。有人可以帮我吗?
我的文本文件
-4 1 0
-5 2 0
6 -3 0
-7 1 0
-8 2 0
9 -3 0
-10 1 0
-11 2 0
12 -3 0
strip 和 lstrip 给了我这个输出
-4 1 0
-5 2 0
6 -3 0
-7 1 0
-8 2 0
9 -3 0
-10 1 0
-11 2 0
12 -3 0
replace(" ",' ')
-4 1 0
-5 2 0
6 -3 0
-7 1 0
-8 2 0
9 -3 0
-10 1 0
-11 2 0
12 -3 0
我需要:
-4 1 0
-5 2 0
6 -3 0
-7 1 0
-8 2 0
9 -3 0
-10 1 0
-11 2 0
12 -3 0
演示文件.txt
>=3 1 2 -3
我尝试读取带有数字的文件并进行编辑,然后进行数学运算 我的完整代码:
import os
import sys
import numpy as np
import math
with open("demofile.txt","r") as s:
# read data
f = open("demofile.txt","r")
lines = f.readlines()
# input preprocessing
p = 1
for i in list(lines):
if i[0] != '<' and i[0] != '>' and i[0] != '=':
d = str(' '.join(i.split()))
print(d)
else:
w = i.replace("=",'')
w = w.replace(">",'')
w = w.replace("<",'')
w = ','.join(w.split())
c = np.array([w])
c1 = [int(i) for i in c[0].replace(" ","").split(",")]
# insert input to array
c1 = np.array(c1)
# save first value in array
frst = c1[0]
# remove first value in array
c1 = np.delete(c1,0)
#print(c1)
# count values in line
n = len(c1)
sest2=c1
#print(c1)
c1=np.array([c1]*frst)
# max value from demofile
maxv = maxv + 1
if p == 1:
# last numbers
end = frst * n + maxv
l = np.arange(maxv,end)
arr = l.reshape(frst,n)
else:
end1 = end + frst * n
l = np.arange(end,end1)
arr = l.reshape(frst,n)
end = end1
arr[c1 < 0] *= -1
# print(arr)
arr6=np.transpose(arr)*-1
sest1=arr6
#print(arr6)
#print(sest1,'\n')
sest = np.zeros((sest1.flatten().shape[0],2))
sest[:,[0]] = sest1.T.flatten()[:,None]
sest[:,[1]] = np.tile(sest2,frst)[:,None]
sest=sest.astype(int)
#print(sest)
sest=str(sest).replace("[",'')
sest=str(sest).replace("]",' 0')
sest = sest[:-1]
sest=str(sest).replace("\n ",'\n')
#sest=sest.lstrip(" ")
print(sest)
解决方法
这可以通过正则表达式来完成。
import re
(...)
first_pass = re.sub(r' +',' ',your_text,flags=re.MULTILINE) # Eliminate duplicate whitespaces
final_pass = re.sub(r'^ +','',first_pass,flags=re.MULTILINE) # Eliminate leading whitespaces
print(final_pass)
输出:
-4 1 0
-4 1 0
-5 2 0
6 -3 0
-7 1 0
-8 2 0
9 -3 0
-10 1 0
-11 2 0
12 -3 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。