Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本:删除选项卡,用逗号分隔列,列出max/min_Python_Python 2.7 - Fatal编程技术网

Python脚本:删除选项卡,用逗号分隔列,列出max/min

Python脚本:删除选项卡,用逗号分隔列,列出max/min,python,python-2.7,Python,Python 2.7,我试图用Python编写一个脚本,以删除两列(一列带有x坐标,另一列带有y坐标)之间的制表符/空格,再加上用逗号分隔的列,并在末尾列出每列的最大值和最小值(x和y坐标各有2个值),如下所示: 10000000 6000000 20000000 6100000 30000000 6200000 40000000 6300000 50000000 6400000 看起来像: 10000000,6000000 20000000,6100000 30000000,6200

我试图用Python编写一个脚本,以删除两列(一列带有x坐标,另一列带有y坐标)之间的制表符/空格,再加上用逗号分隔的列,并在末尾列出每列的最大值和最小值(x和y坐标各有2个值),如下所示:

10000000    6000000
20000000    6100000
30000000    6200000
40000000    6300000
50000000    6400000
看起来像:

10000000,6000000
20000000,6100000
30000000,6200000
40000000,6300000
50000000,6400000

10000000 50000000 60000000 640000000
我是新手,非常感谢你的帮助。非常感谢

这将起作用:

li = []
for line in lines:
    li.append(', '.join(line.split('\t')))

first_column = [int(x.split(',')[0]) for x in li]
second_column = [int(x.split(' ')[1]) for x in li]

for x in li:
    print (x)
print(min(first_column), max(first_column), min(second_column), max(second_column))
这将有助于:

li = []
for line in lines:
    li.append(', '.join(line.split('\t')))

first_column = [int(x.split(',')[0]) for x in li]
second_column = [int(x.split(' ')[1]) for x in li]

for x in li:
    print (x)
print(min(first_column), max(first_column), min(second_column), max(second_column))

您可以使用
csv
模块进行输出;只需在输入文件上循环并使用
str.split()
将行拆分为行:

import csv

minimum = [float('inf'), float('inf')]
maximum = [float('-inf'), float('-inf')]

with open(inputfilename, 'r') as infile:
    with open(outputfilename, 'wb') as outfile:
        writer = csv.writer(outfile)
        for line in infile:
            row = map(int, line.split())
            minimum = map(min, zip(minimum, row))
            maximum = map(max, zip(maximum, row))
            writer.writerow(row)

x_extremes, y_extremes = zip(minimum, maximum)
print ' '.join(map(str, x_extremes)), ' '.join(map(str, y_extremes))
float('inf')
float('-inf')
starter值使以后计算最小和最大坐标变得更容易


最后一行是

您可以使用
csv
模块进行输出;只需在输入文件上循环并使用
str.split()
将行拆分为行:

import csv

minimum = [float('inf'), float('inf')]
maximum = [float('-inf'), float('-inf')]

with open(inputfilename, 'r') as infile:
    with open(outputfilename, 'wb') as outfile:
        writer = csv.writer(outfile)
        for line in infile:
            row = map(int, line.split())
            minimum = map(min, zip(minimum, row))
            maximum = map(max, zip(maximum, row))
            writer.writerow(row)

x_extremes, y_extremes = zip(minimum, maximum)
print ' '.join(map(str, x_extremes)), ' '.join(map(str, y_extremes))
float('inf')
float('-inf')
starter值使以后计算最小和最大坐标变得更容易


最后一句话是

谢谢Ankur这么快。我会查出来让你知道的。谢谢安克尔这么快就来了。我会检查一下并让你知道。你想把最小和最大坐标写入这样的输出文件吗?还是你只是想把它们打印出来?或者您只是想读取输入列,并在程序中将这些值作为整数使用?您想将最小和最大坐标写入这样的输出文件吗?还是你只是想把它们打印出来?或者您只是想读取输入列,并在程序中使用这些值作为整数吗?嗨,Martijn。谢谢我想我就快到了(我只是将int改为float,因为我忘了在我的示例中提到,我实际上使用的是两个十进制浮点);但是,我收到一个错误,说“\u csv.reader”对象没有属性“writewrow”?请仔细查看该异常,并将其与我发布的代码进行比较。:-)(您缺少一个
e
)。很抱歉输入错误,正在处理两个终端,没有复制粘贴。这里是:AttributeError:“\u csv.reader”对象没有属性“writerow”。在回答您之前的问题时,我所要做的就是将最小-最大坐标与重新格式化的坐标(即没有空格,以逗号分隔的列)一起写入输出文件。@geodk:这是因为我太频繁地键入这些行,并将
csv.writer
替换为
csv.reader
。。。哎呀,更正了。它有效!!非常感谢。我对人性的信仰今天已经慢慢恢复了。嗨,玛蒂恩。谢谢我想我就快到了(我只是将int改为float,因为我忘了在我的示例中提到,我实际上使用的是两个十进制浮点);但是,我收到一个错误,说“\u csv.reader”对象没有属性“writewrow”?请仔细查看该异常,并将其与我发布的代码进行比较。:-)(您缺少一个
e
)。很抱歉输入错误,正在处理两个终端,没有复制粘贴。这里是:AttributeError:“\u csv.reader”对象没有属性“writerow”。在回答您之前的问题时,我所要做的就是将最小-最大坐标与重新格式化的坐标(即没有空格,以逗号分隔的列)一起写入输出文件。@geodk:这是因为我太频繁地键入这些行,并将
csv.writer
替换为
csv.reader
。。。哎呀,更正了。它有效!!非常感谢。今天,我对人性的信仰已逐渐恢复。