所以我有一个由一列组成的文本文件,每列包含两个数字
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我希望这能说得通我不知道该怎么做
发布于 2013-03-07 12:51:31
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"发布于 2013-03-07 12:42:10
试试这个:
下面是一个例子:
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'发布于 2013-03-07 12:52:47
试试这个:
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')https://stackoverflow.com/questions/15263158
复制相似问题