脚本代码思路总结及pycharm上传代码到github

今天写了个脚本,功能是:遍历一个目录,并读取所有文件内容,查看已有的json文件中哪些键没有用到,目录下的文件都用了json文件中的哪些键。

一、用到的包:json,os

1.使用json包的json.loads()来读取Json文件,并转化成对象拿到所有的键

2.用os模块来遍历目录,灵活运用os模块提供的方法对file/dir进行操作

二、代码思路:

1.首先针对题目需求来确定解题思路,因为python的列表对于遍历,添加,剔除,很容易,所以首先确定了主要用列表来做。首先将json文件中的键读出来存放到列表中,另外定义空列表每次读js文件都设置成空,读完文件输出列表到txt文件中。

2.经过调试发现循环引用次数过多而且文件内容很大(首先要递归遍历目录,读取文件的时候还要用行来遍历,这是第二层,读取完之后还要和列表中的json键进行比对,这是第三层循环),所以先写了一个单元测试来测试简单的,直接获取json文件的键来和目录中其中一个js文件对比,经过调试,通过以后引用到主文件里。

3.综合以上两点,确定三层循环思路和递归遍历目录的方法,结合list和os模块的方法经过调试完成代码

三、解题遇挫:

1.因为os模块我个人不常用,所以出了不少错,用到的方法有:

os.listdir(path)【将传入路径下的所有子级目录转换成列表】

os.path.join(path, filename) 【将文件名字自和路径拼接成相对路径】

os.path.isfile(file) 【判断传入的是否为文件,如果是则打开读取进行下步操作,如果不是,则递归继续遍历】

os.path.isdir(file)  【类似以上,判断传入的是否为文件夹,如果是,递归打开下一级】

2.报错UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 

这个比较坑,在打开js文件读取的时候有编码格式问题,网上搜出来的答案建议把文件另存为utf8编码格式,但是由于目录较多,操作太不方便,我开始寻找另外的方法,通过看open这个方法我发现了个参数errors,参数的描述如下

errors is an optional string that specifies how encoding errors are to be handled---this argument should not be used in binary mode. Pass'strict' to raise a ValueError exception if there is an encoding error(the default of None has the same effect), or pass 'ignore' to ignore errors. (Note that ignoring encoding errors can lead to data loss.)See the documentation for codecs.register or run 'help(codecs.Codec)'for a list of the permitted encoding error strings.

这就很nice了,我把errors参数设置为ignore,果然可以打开了

3、由于乱用try...except方法导致结果不准确,因为我发现在写第三层循环时因为要判断此文件中包含列表中的字符串,然后剔除列表,用list.remove()发现会报错,于是我用了一下try异常模块,代码果然不报错了,然而每次的运行结果都不一样,(因为try模块的机制),后来找了许久原因才发现这里出问题了,然后取消了try,添加了更为严谨的判断方法。

4、由于写入方式不合理导致命令运行时间过长,写入文件过多电脑差点死机。。。由于写入位置不合理,发现每添加一次列表就会写入一次,导致文件中存在过多的重复数据,然后我就想再把文件读出来去重写到另一个文件中去,发现这样做不仅效率变得极低,而且文件依然过大。经过不断尝试,终于合理的调整了写入的位置从而使代码执行效率变高。

以下为所写代码:


写完代码上传至github

因为我用的编辑器是pycharm,编辑器比较高级,在拥有github账号和本地Git的情况下可配置好直接使用,比较方便。

1.打开pycharm的file——settings——Vresion Control直接配置github账号,然后点击同级目录下的git来配置本地Git,因为github必须结合本地Git一起使用

2.然后退出settings,找到上面的工具栏的VCS里的 import into Version Control,进行代码提交

3.在提交的时候报了个错,错误如下:

Can't finish GitHub sharing process

Successfully created project 'Test' on GitHub, but initial commit failed:

*** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. fatal: empty ident name (for (null)>) not allowed during executing git -c core.quotepath=false commit -m "Initial commit" --

原来是配置Git的账户没有登记,于是找到git目录下的Git Bash运行,输入下面两行代码即可

git config --global user.email     加自己邮箱,不必和github注册邮箱一致  

git config --global user.name     加自己的用户名

然后提交成功登陆github官网查看自己刚上传的项目。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容