Python中 sys.argv[]的用法简明解释

      因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上查了许多,但发现这个问题的比较详细的解释只有一个版本,大部分都是转载和复制的。给的都是简明python教程上那个一长串代码的例子,说看了就明白了,可我看得晕头转向的还是没真正明白,只知道“sys.argv[0]表示代码本身文件路径”这点,其实还是不明其意。后来经过大量努力,多方求教才真正明悟了,谨以记录和分享,希望能从另一个角度给同在求索过程中的同学一点启发。

  sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

下面我们通过一个极简单的test.py程序的运行结果来说明它的用法。

1 #test.py
2 
3 import sys
4 a=sys.argv[0]
5 print(a)

将test.py保存在c盘的根目录下。

在程序中找到 ‘运行’->点击->输入”cmd”->回车键   进入控制台命令窗口(如下图),先输入cd c:\   (作用是将命令路径改到c盘根目录),然后输入test.py运行我们刚刚写的程序:

得到的结果是C:\test.py,这就是0指代码(即此.py程序)本身的意思。

然后我们将代码中0改为1 :

a=sys.argv[1]

保存后,再从控制台窗口运行,这次我们加上一个参数,输入:test.py what

 得到的结果就是我们输入的参数what,看到这里你是不是开始明白了呢。

那我们再把代码修改一下:

a=sys.argv[2:]

保存后,再从控制台窗台运行程序,这次多加几个参数,以空格隔开:

test.py a b c d e f

得到的结果为[‘b’, ’c’, ’d’, ’e’, ’f’]

应该大彻大悟了吧。Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。

转载自:https://www.cnblogs.com/aland-1415/p/6613449.html

网站迁移

近日,为了提升公司网站的访问速度及稳定性,将公司网站迁移到了阿里云,并进行了域名备案,使之可以在国内可以稳定流畅的访问。

同时,还将陆续对网站内容进行大量的更新,包括如下内容:

  1. 案例展示:

公司成立五年以来,先后承接的大小项目百余个,后面会陆续挑选其中有代表性的项目拿出来展示。会详细介绍方案、扩初、施工图、现场指导整个设计过程遇到的重点难点,以及问题的解决方法。

  • 技术文章:

宏岚景观的技术性文章后面会在官网及微信公众号中同步发布,涉及景观设计常用软件的技术细节,推荐新的、实用的软件,新技术的推广等等,会不定期的推出。

  • 新技术展示

航拍模型、全景照片、BIM模型、GIS地图等通过web技术在官网上进行展示,展现行业最新的技术。

希望大家能持续关注宏岚景观,我们也将以最大的努力来回馈大家的关注。如有项目合作或者对宏岚景观的技术感兴趣,欢迎来电咨询。

联系人:王洪宇

邮箱:srv@hlylsj.com

电话:18513504311

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

多个dwg文件进行同样修改的神器-ScriptPro

最近在赶一个项目的图纸,利用图纸集导出pdf后进行检查,发现有几张图的图名标注与其它的不同,也有几张图的线型比例有问题,逐一修改下来浪费了一些时间,遂考虑有无简单的方法进行这类简单重复的工作。最后找到了这个工具-ScriptPro。

自己根据目的手写一个简单的scr文件,在这个软件中加载这个scr,然后选择需要应用的dwg文件,即可批量完成修改。

以上图为例,右侧为我写的scr文件,修改Standard、_Tch_Dim字体为系统默认值,修改ltscale=1。(天正会自动的把模型空间改为1000,布局空间改为10)

稍后,我会出详细的安装和设置的步骤,以及scr文件如何制作,敬请期待。

同时,也需要大家思考一下,在你日常的工作中,是否遇到类似简单重复的劳动,可以尝试用此方法解决。

Sheetset creator——图纸集三插件之二

上次我们介绍了图纸集属性修改的利器SSMPropeditor,同时我们也配合开发者将其汉化,下一个版本就会包含完整的中文支持。

本期我们来介绍图纸集的另外一个利器,Sheetset creator,顾名思义是用来创建图纸集的。那为何不用自带的图纸集管理器创建图纸集,这个软件有何特色的功能呢?下面我们来对比一下:

  • 正常的创建图纸集的方法:

 

图纸集管理器,新建图纸集,会出现上方的对话框,

样例图纸集:根据现有的图纸集创建新的图纸集,会保留现有图纸集所有的设置,比如图纸集的属性、自定义属性、标注块等等。创建完毕后,要手动调整每一处设置以适配新项目。

现有图形:将现有的dwg文件加入到一个新的图纸集中,所有的特性都为空白,需要手动的增加和调整。

因此,利用自带的图纸集创建图纸集,需要手动设置很多选项,一个个按钮的点按,是个很繁琐的过程。

  • Sheetset creator:利用Excel编辑好各属性定义,作为控制文件,直接生成图纸集。

我们来看看这个excel长啥样

图纸集的属性直观的显示在表格中展示,修改,制作好一个模板后,以后每次新项目,可以直接做少许修改,即可直接使用。

然后,打开cad,点击图标,选择刚才修改的excel即可快速生成图纸集,以及若干需要的样例文件了。So easy……

Sheetset creator能够快速的创建图纸集,通过公司定制好的模板,批量生成若干项目的图纸集文件,不需要手动的更改每个文件,提升效率,同时也能避免很多细节设置的错误,是使用图纸集功能的又一大利器。

已在宏岚景观的淘宝店铺中上架:https://item.taobao.com/item.htm?ft=t&id=626263557592,有需要的欢迎购买。

还是之前的承诺,销售到达一定的数量即开始进行汉化工作,保证大家使用软件愉快。

Lands desgin 简介

近日,宏岚景观正式于Asuni公司进行合作,在中国为Lands design用户提供服务。

宏岚景观将提供如下服务:

  1. 中国区销售服务:现已将lands design上架到淘宝店中 https://item.taobao.com/item.htm?ft=t&id=623036340617。
  2. 售前咨询服务:如对本产品有兴趣,所有的疑问都可以联系QQ:623086159;
  3. 售后服务:软件的安装、激活等问题。企业用户达到一定的购买量,还可以提供上门培训、功能定制等服务。
Lands Design

SSMpropeditor——图纸集三插件之一

本文是关于图纸集三个实用插件之一的SSMPropeditor,也是最重要的一个,因此放在第一篇来讲述。

前文提到,利用图纸集我们可以批量的打印图纸、转换PDF、生成图纸目录、快速处理图号、图名,还可以在图纸中创建超链接,具有非常强大的管理功能。虽然图纸集本身的功能很强大,但是创建、修改图纸集还是需要耗费一定的精力。

那我们今天就看看利用这个小工具如何能大大提高效率的。

首先看一下界面,是现在流行的ribbon界面,很容易上手。目前界面为英文,还有法语、德语等,汉化工作正在进行中。已经配合开发者完成汉化工作,大家可以放心使用。

最上方是工具的ribbon界面,左边是图纸集的列表,右侧为具体的属性内容。

下面以两个最常见的需求,来讲解一下:

  1. 图纸序号:

很多公司都有此要求,除了正常的图号ZS-xx,XS-xx之类,前面还要加一个需要,用于标记图纸张数,还有的公司要求在图签上标记“序号/张数”。貌似也没有多难,毕竟图都画了😂。但是如果后期删除或者增加一张或者几张图纸呢?不可能每次修改,都仔细重新顺一下这个编号吧?

首先,我们需要在图纸集的特性中定义这两个特性这两个名称可以随自己喜好设置,一个是序号,一个是图纸总张数,并插入到图签的相应位置。

然后在ssmpropeditor中,先选择需要应用需要的图纸,然后选择右侧的序号(varies意思是这些图纸的此内容是不同的,无需纠结),然后点击ribbon中的SheetIndexing,就是图纸索引,用此默认设置就可以生成序号,当然,也可以增加前缀后缀,还可以把起始序号修改。

这样,序号就会自动排好了。

  1. 修改图纸属性:

我们利用Autocad自带的图纸集管理器,如果想要修改图纸的属性,至少需要点击三次鼠标才能到修改界面,左键点击以选中图纸,右键,然后点特性,这样才能调出以下的窗口

然后修改完这一个,还得点击确定,然后重复以上操作,以修改下一个。

而在ssmpropeditor中,我们只需要选中相应的图纸,相关的特性就直接显示出来。

如果这样一个个改还觉得麻烦,那我们就把图纸集导出为excel文件来快速修改吧。

这样,excel熟练的小伙伴们就可以很方便的进行操作了,比如上一个需求,直接这里拖拽复制单元格就完成了。

以上,以两个最常用的需求为例,讲解了以下ssmpropeditor的操作,肯定还有更多的需求,这里也不方便一一展开,如有特殊的需求,可与我联系。

如果对本软件感兴趣,请联系我购买,淘宝地址:https://item.taobao.com/item.htm?ft=t&id=623341549182

本软件已经完成汉化工作,希望各位能够大力支持,后面我会陆续把宏岚设计代售的软件都加入中文支持。

如何提高图纸集效率

图纸集,本文特指Autocad中概念,我们按下Ctrl+4,调出图纸集管理器,如下图:

利用图纸集我们可以批量的打印图纸、转换PDF、生成图纸目录、快速处理图号、图名,还可以在图纸中创建超链接,具有非常强大的管理功能。

虽然图纸集本身的功能很强大,但是创建、修改图纸集还是需要耗费一定的精力,近期,宏岚将会分三个章节来介绍三个相关的小工具,大幅提高处理图纸集的效率,这三个均来自jtbworld,分别是CreateSheetSet、DST tool、SSMPropeditor。

  1. CreateSheetSet:利用excel表定义,快速创建图纸集。
  2. DST tool:拆分、合并图纸集。
  3. SSMPropeditor:调整图纸集的属性,导出excel 批量修改后,可重新导入。

以上工具目前仅为英文版,目前跟开发者商定,销量超过100份后进行汉化的工作,为了让大家现在就能应用,会于近期陆续推出教程,并在淘宝上架相应软件。

SSMPropeditor 淘宝链接:https://item.taobao.com/item.htm?ft=t&id=623341549182。

 

批量修改文件名

今天遇到了一个问题,一个项目的业主对存档的图纸提出了要求:pdf一个页面一个文件,并按英文图名命名。

听着很简单,用图纸集管理图纸,图名用英文,然后发布设置里不允许多页,然后发布pdf就好了。

但是,如果真这么简单,我也不会写这个文章了。

由于业主制图规范的原因,规定的图号太长,因此图纸中只保留最后的两段;由于中英文对照,为了便于制图,图名也定的是中文的。

通过图纸集导出的pdf文件名就成了xxx-中文名.pdf了,那如何快速的把几百个pdf文件重新命名为xxxxx-xxxx-xxx-english name.pdf呢?

这就需要用到windows的命令行了,再win10上,默认powershell也可以,rename这个命令

实现的命令为:ren ‘x:\xxx-中文名.pdf’ ‘xxxxx-xxxx-xxx-english name.pdf’。(文件名有空格的时候必须加引号或者双引号)。

为了实现批量的目的,我们在excel中进行操作,利用concatenate公式拼出上面的命令,注意标点符号的半角,注意单双引号。

最后,将公式应用到整列,复制黏贴到powershell中,回车执行,即可完成全部替换工作。

Autocad 插入Bing卫片

很久很久以前,我讲过Autocad的一个新功能,那就是插入bing的卫片,这样做平面图、做规划的就不需要再去专门折腾GoogleEarth了,超级方便。

然鹅,事情往往没有那么美好!很久以前这个功能就不能用了,我一直也没找到具体的原因,后面搞gis,也就没怎么关注这个功能了。

直到有一天为了折腾另外一个东西,安装了英文版的autocad,顺手试了一下这个功能,果然还能用,因此得出结论,这一功能失效应为中国版Bing地图的问题。

所以,英文好的小伙伴们,安装英文版的Autocad就可以正常使用这一功能了。理论上修改注册表项可以解决这一问题,但是我没这么有时间,谁闲着可以自己找找看。