Python练习:用脚本实现文件内容批量替换
练习本节课的时候遇到了不少问题,依次给大家分享,首先分享的是脚本实现文件内容批量替换的功能。以下内容全部以windows环境下为例,为什么这样呢?因为我没有mac。脚本小子入门避坑必看,只是以后出事后别说是我领你避坑的就行
废话不多说,附上源码图。
注释内容想必已经足够详细了,接下来说下练习过程中遇到的问题。
问题1:直接run运行脚本报错:sys.argv[1] IndexError: list index out of range
这个问题很好解决,带有sys.argv[]不能直接run,需在终端打开(open in terminal),终端命令格式:python 文件名.py 参数值(你有几个参数就输入几个参数,参数中间一个空格隔开),再回车。这里还有个小问题,如果你的电脑同时安装有python2和python3,那么你执行命令的时候要注意了,尤其是老的mac电脑,自带python2.
问题2:在Pycharm终端运行上面命令时报错:无法加载文件 C:\Users\Administrator\PycharmProjects\pythonProject\venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本。
问题原因:Windows powershell中相关权限未打开。解决办法:
1、在Pycharm终端中输入命令:get-executionpolicy 查看当前应用的执行策略。可以看到返回值。因为解决问题的时候忘记截图了,所以从网上找一个对应的图。
2、以管理员身份打开powershell:win+r键,然后输入powershell,回车。(如果有的同学打不开,先看下自己登录windows的账户是不是管理员角色。)然后输入命令:set-executionpolicy remotesigned,如下图,然后输入:y,回车。只要没报错,就说明你更改成功了,这个时候在Pycharm终端中就可以执行 python 文件名.py 参数值 这个命令了,如果在powershell中输入y后报错,那么再看下面
问题3:在问题2步骤2中输入y回车后报错,如下。(当时忘记截图了,所以从网上找个截图,来源见水印)
解决办法:输入Set-ExecutionPolicy -Scope CurrentUser命令并回车。会提示你输入命令,再输入set-ExecutionPolicy RemoteSigned,然后重复问题2中的步骤2输入y就可以了。这个时候你再再pycharm终端中输入get-executionpolicy,返回Remotesigned,就说明成功了,你可以放心大胆的执行脚本命令了
上面那三个问题对于我来说都是小问题,很好解决,最后难到我的反而是脚本命令,我一直输入的是python3 脚本名……执行后没有报错也没有输出结果,文件内容也没有成功更改,到最后才发现我的windows电脑就一个python3,输入命令的时候直接python就可以了......无语中。看在这么辛苦码字的份上,请点赞关注。谢谢。最后附上运行成截图。
刚进来的朋友可以看我前几天的文章