ArcGIS Pro 布局视图列表
工程信息
- 工程路径:
C:\Users\ZhuanZ\Documents\ArcGIS\Projects\勘界图\勘界图.aprx - 布局数量: 7个
- 操作时间: 2026-06-02
布局列表
| 序号 | 布局名称 | 页面大小 | 方向 |
|---|---|---|---|
| 1 | 影像图(A4横) | 297.0 x 210.0 mm | 横向 |
| 2 | 现状图(A4横) | 297.0 x 210.0 mm | 横向 |
| 3 | 部门核查附图2(A4竖) | 21.0 x 29.7 cm | 竖向 |
| 4 | 规划图(A4竖) | 21.0016 x 29.7011 cm | 竖向 |
| 5 | 部门核查附图1(A4竖) | 21.0 x 29.7 cm | 竖向 |
| 6 | 与禹门口地质遗迹保护区平面示意图 | 21.0 x 29.7 cm | 竖向 |
| 7 | 规划图2(A4竖) | 21.0016 x 29.7011 cm | 竖向 |
操作代码
使用arcpy脚本列出布局:
# -*- coding: utf-8 -*-
# 声明:这个.py文件是用UTF-8编码保存的
import arcpy
import sys
# 设置标准输出编码为UTF-8(解决Windows PowerShell中文乱码)
sys.stdout.reconfigure(encoding='utf-8')
# 打开工程文件
aprx = arcpy.mp.ArcGISProject(r"C:\Users\ZhuanZ\Documents\ArcGIS\Projects\勘界图\勘界图.aprx")
# 列出所有布局
layouts = aprx.listLayouts()
print(f"找到 {len(layouts)} 个布局视图:\n")
for idx, lyt in enumerate(layouts, 1):
print(f"{idx}. {lyt.name}")
print(f" 页面大小:{lyt.pageWidth} x {lyt.pageHeight} {lyt.pageUnits}\n")
关于编码的两个重要设置
1. # -*- coding: utf-8 -*-(文件编码声明)
作用:告诉Python解释器这个.py脚本文件本身是用UTF-8编码保存的。
解决的问题:当Python读取脚本文件时,如果遇到中文注释或字符串字面量(如 print("你好")),需要知道用哪种编码来解析这些字符。
Python 3的情况:从Python 3.0开始,默认的源代码编码就是UTF-8,所以这个声明在Python 3中通常是可选的,但加上是个好习惯。
示例:
# -*- coding: utf-8 -*-
print("这个.py文件包含中文注释")
2. sys.stdout.reconfigure(encoding='utf-8')(输出编码设置)
作用:告诉Python:**标准输出(stdout)**应该使用UTF-8编码。
解决的问题:当print()语句向控制台(如PowerShell)输出中文字符时,控制台需要正确解码这些字节流。如果控制台默认使用GBK编码,而Python输出的是UTF-8编码的字节,就会出现乱码。
这是解决Windows下中文乱码的关键!
示例:
import sys
sys.stdout.reconfigure(encoding='utf-8')
print("这段文字会正确显示在PowerShell中")
两种编码设置的区别总结
| 设置 | 作用对象 | 解决的问题 |
|---|---|---|
# -*- coding: utf-8 -*- |
Python脚本文件本身的编码 | Python解释器如何正确读取.py文件中的中文 |
sys.stdout.reconfigure(encoding='utf-8') |
标准输出流(stdout)的编码 | print()输出的中文在控制台中正确显示 |
类比:
- 文件编码声明:告诉翻译官(Python解释器)"这份文件是中文写的,请用中文来理解"
- 输出编码设置:告诉翻译官"你翻译好的内容,请用UTF-8编码格式输出给听众(控制台)"
注意事项
- 编码问题: Windows PowerShell下中文可能乱码,需要同时设置:
- 文件编码声明:
# -*- coding: utf-8 -*- - 输出编码设置:
sys.stdout.reconfigure(encoding='utf-8')
- 文件编码声明:
- 页面单位: 布局可能使用不同单位(MILLIMETER 或 CENTIMETER),需要注意区分
- 页面尺寸: 竖向布局的尺寸值可能有浮点精度问题(如29.700000000000003)
相关操作
- 列出地图:使用
aprx.listMaps() - 导出布局:使用
lyt.exportToPDF()或lyt.exportToPNG() - 修改页面大小:直接设置
lyt.pageWidth和lyt.pageHeight