所以我有一个由一列组成的文本文件,每列包含两个数字
190..255
337..2799
2801..3733
3734..5020
5234..5530
5683..6459
8238..9191
9306..9893
我想丢弃第一个和最后一个数字,在本例中为190和9893。 并且基本上将其余数字向前移动一个位置。像这样
我想要的输出
255..337
2799..2801
3733..3734
5020..5234
5530..5683
6459..8238
9191..9306
我希望这是有道理的我不知道如何处理这个
答案 0 :(得分:4)
lines = """190..255
337..2799
2801..3733"""
values = [int(v) for line in lines.split() for v in line.split('..')]
# values = [190, 255, 337, 2799, 2801, 3733]
pairs = zip(values[1:-1:2], values[2:-1:2])
# pairs = [(255, 337), (2799, 2801)]
out = '\n'.join('%d..%d' % pair for pair in pairs)
# out = "255..337\n2799..2801"
答案 1 :(得分:3)
试试这个:
以下是一个例子:
a = """190..255
337..2799
2801..3733
3734..5020
5234..5530
5683..6459
8238..9191
9306..9893"""
a_list = a.replace('..','\n').split()
b_list = a_list[1:-1]
b = ''
for i in range(len(a_list)/2):
b += '..'.join(b_list[2*i:2*i+2]) + '\n'
答案 2 :(得分:3)
试试这个:
with open(filename, 'r') as f:
lines = f.readlines()
numbers = []
for row in lines:
numbers.extend(row.split('..'))
numbers = numbers[1:len(numbers)-1]
newLines = ['..'.join(numbers[idx:idx+2]) for idx in xrange(0, len(numbers), 2]
with open(filename, 'w') as f:
for line in newLines:
f.write(line)
f.write('\n')
答案 3 :(得分:3)
temp = []
with open('temp.txt') as ofile:
for x in ofile:
temp.append(x.rstrip("\n"))
for x in range(0, len(temp) - 1):
print temp[x].split("..")[1] +".."+ temp[x+1].split("..")[0]
x += 1
答案 4 :(得分:2)
也许这会有所帮助:
def makeColumns(listOfNumbers):
n = int()
while n < len(listOfNumbers):
print(listOfNumbers[n], '..', listOfNumbers[(n+1)])
n += 2
def trim(listOfNumbers):
listOfNumbers.pop(0)
listOfNumbers.pop((len(listOfNumbers) - 1))
listOfNumbers = [190, 255, 337, 2799, 2801, 3733, 3734, 5020, 5234, 5530, 5683, 6459, 8238, 9191, 9306, 9893]
makeColumns(listOfNumbers)
print()
trim(listOfNumbers)
makeColumns(listOfNumbers)
答案 5 :(得分:0)
我认为这也可能有用。我正在从文件名列表中读取数据。
data = open("list","r")
temp = []
value = []
print data
for line in data:
temp = line.split("..")
value.append(temp[0])
value.append(temp[1])
for i in range(1,(len(value)-1),2):
print value[i].strip()+".."+value[i+1]
print value
读取数据后,我将其拆分并存储在临时列表中。之后,我将数据复制到包含所有数据的主列表值。然后我从第二个元素迭代到第二个最后一个元素以获得输出出于兴趣。使用条带功能是为了删除&#39; \ n&#39;来自价值的人物。
稍后您可以将这些值写入文件而不是打印出来。