在实际工作中,经常会涉及到需要去替换文件中某一个词,而传统的做法是:通过编辑软件中自带的“替换/查找”功能进行处理。但是如果涉及到成百上千个文件需要这样的处理,该怎么解决?本篇博文将介绍一种基于Python的解决方案。
Python中os库中listdir函数用于读取文件夹下的所有文件名,并返回出来列表。
fileList = os.listdir(filename)
正则表达式是将帮助我们完成符合要求字符串的替换,Python中re库是正则表达式库。
def repfilecont(filepath,content,replacecontent):
f=open(filepath,'r')
alllines=f.readlines()
f.close()
f=open(filepath,'w+')
for eachline in alllines:
content=re.sub(content,replacecontent,eachline)
f.writelines(content)
f.close()
def repbatfilecont(filepath,content,replacecontent):
filelist = File.readfilesname(filepath)
content = content
replacecontent = replacecontent
for file in filelist:
File.repfilecont(filepath+'/'+file,content,replacecontent)
print(file+' 处理完毕!')
File.repbatfilecont('C:\\Users\\Administrator\\Desktop\\test',"天津师范大学","天师大")
上述原码来源于我编写的oset开源库,该库旨在帮助教育研究者便捷处理日常科研、工作中遇到的问题。
作为一名非科班出身的教育技术学研究生,技术水平十分有限。近期看到教育工作者在处理数据是比较困难,包括本教育技术学的科研工作者在面对大批量数据时也是束手无策,于是萌生了为教育工作者写一个开源库的想法,意图通过简单的几行代码就可以完成诸如文件合并、字符云等复杂功能。欢迎关注该项目,如果有同学在此方面感兴趣和可以和我联系,我们一起维护该项目!
本人感兴趣的研究方向:复杂系统计算与可解释性的深度学习以及自然语言处理。微信公众号:SMNLP;个人博客:www.litan.tech。
教育研究中经常会遇到需要将许多访谈记录合并的情况。缺乏编程能力的老师或者同学需要不断复制、粘贴…不但耗时,而且容易存在遗漏复制文本等问题。本文给出我已经编写并且测试完成的函数,如果需要可以直接复制并使用。 注:以下程序来源于我编写的教育技术开源库(oset),欢迎关注,感兴趣的同学可以和我联系,我们一起维护!点击进入教育技术开源库
## 1 定义相关类
class File:
def readfile(filename):
data = open(filename,'r',encoding = 'utf-8')
return data.read()
def readfilesname(filename):
fileList = os.listdir(filename)
return fileList
def combfile(filepath,**outpath):
filelist = File.readfilesname(filepath)
if outpath != {}:
data = open(outpaht+'/combfile_Fin.txt','w+',encoding = 'utf-8')
else:
data = open(filepath+'/combfile_Fin.txt','w+',encoding = 'utf-8')
for file in filelist:
data.write(File.readfile(filepath+'/'+file)+'\n')
在上述File类中:
File.combfile('C:\\Users\\Administrator\\Desktop\\test')
作为一名非科班出身的教育技术学研究生,技术水平十分有限。近期看到教育工作者在处理数据是比较困难,包括本教育技术学的科研工作者在面对大批量数据时也是束手无策,于是萌生了为教育工作者写一个开源库的想法,意图通过简单的几行代码就可以完成诸如文件合并、字符云等复杂功能。欢迎关注该项目,如果有同学在此方面感兴趣和可以和我联系,我们一起维护该项目!
本人感兴趣的研究方向:复杂系统计算与可解释性的深度学习以及自然语言处理。微信公众号:SMNLP;个人博客:www.litan.tech。
本文给出安装Scrapy时遇到:Running setup.py install for Twisted … error错误的解决方案。
安装Scrapy爬虫框架时经常会遇到Running setup.py install for Twisted … error的错误
具体方法如下:进入Python环境输入如下命令:
>>> import pip._internal
>>> print(pip._internal.pep425tags.get_supported())
[('cp38', 'cp38', 'win_amd64'), ('cp38', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('py38', 'none', 'any'), ('py3', 'none', 'any'), ('py37', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
可以看到我的环境中可以接受安装的环境是(‘cp38’, ‘cp38’, ‘win_amd64’),接着前往UCI网站下载
点击进入下载地址
如下图所示,选择对应的标签号,点击下载
CMD中输入:>pip install C:Python\Python38\Scripts\Twisted-20.3.0-cp38-cp38-win_amd64.whl
采用镜像安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Scrapy
至此安装成功!
作为一名非科班出身的教育技术学研究生,技术水平十分有限。近期看到教育工作者在处理数据是比较困难,包括本教育技术学的科研工作者在面对大批量数据时也是束手无策,于是萌生了为教育工作者写一个开源库的想法,意图通过简单的几行代码就可以完成诸如文件合并、字符云等复杂功能。欢迎关注该项目,如果有同学在此方面感兴趣和可以和我联系,我们一起维护该项目!
本人感兴趣的研究方向:复杂系统计算与可解释性的深度学习以及自然语言处理。微信公众号:SMNLP;个人博客:www.litan.tech。
在编写库函数时经常会遇到这样一种情况:由于任务不同,一个函数经常会传入的入不同的个数,而有些参数并非是必选的。本文将首先讲解函数参数类型,然后讲解如何判断该参数是否传入并给出示例。
顾名思义,就是函数必须有的入参 示例:
>>def add(x,y): ... return x+y >>print(add(1,2)) >>3
在函数定义时给定一个初始值,在函数调用时可以不传这个参数,采用默认参数的值;如面程序所示,y=3为默认参数。 示例:
>>def add(x,y=3): ... return x+y >>print(add(1)) >>4
顾名思义,函数参数的个数是可变的,如x为可变参数。
>>def add(*x): ... sum = 0 ... for i in x: ... sum+=i ... return sum >>print(add(1,2,3)) >>6
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
>>def add(x,**y): ... print(x,y) >>print(add(1,)) >>1 {}
2 如何判定可变参数以及关键字参数有值入参
可选参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple,因此可以通过如下方式判断:
def add(*x): if x == (): print('无参数') else: print('有参数') >>无参数
2.2 判断是否有关键字参数传入
def add(**x): if x == {}: print('无参数') else: print('有参数') print(add(x=1)) >>有参数
作为一名非科班出身的教育技术学研究生,技术水平十分有限。近期看到教育工作者在处理数据是比较困难,包括本教育技术学的科研工作者在面对大批量数据时也是束手无策,于是萌生了为教育工作者写一个开源库的想法,意图通过简单的几行代码就可以完成诸如文件合并、字符云等复杂功能。欢迎关注该项目,如果有同学在此方面感兴趣和可以和我联系,我们一起维护该项目!
本人感兴趣的研究方向:复杂系统计算与可解释性的深度学习以及自然语言处理。微信公众号:SMNLP;个人博客:www.litan.tech。
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。[1]是科研和技术人员的理想代码托管平台;本博客首先阐述如何在GitHub上创建一个项目,然后讲述如何将该项目下载到本地,最后阐述如何完成更新,并上传。
首先需要注册一个github的账号,这里不再赘述了,直接进入正题。
如果是新建库请将下面的Initialize this repository with a README勾选上,如果已经存在一个现成的库,则跳过此步骤。
这里拟需要下载一个git工具,下载地址:https://gitforwindows.org/;随后在本地创建一个文件夹用于保存克隆下的项目。
- 2.1 进入项目空间,点击“克隆与下载”,并复制项目的下载链接
随后会自动下载,下完完成后如下图所示:
3.1 更新文件
3.2 与上述2.2步骤一样,进入git,一步步输入以下命令:
git add .
git commit -m “你的备注”
git push
其中git push以后会有弹框,让你输入github的用户名和密码
[1] https://baike.baidu.com/item/github/10145341?fr=aladdin
作为一名非科班出身的教育技术学研究生,技术水平十分有限,近期看到教育工作者在处理数据是比较困难,包括本教育技术学的科研工作者在面对大批量数据时也是束手无策,于是萌生了为教育工作者写一个开源库的想法,意图通过简单的几行代码就可以完成诸如文件合并、字符云等复杂功能。欢迎关注该项目,如果有同学在此方面感兴趣和可以和我联系,我们一起维护该项目!
本人感兴趣的研究方向:复杂系统计算与可解释性的深度学习以及自然语言处理。微信公众号:SMNLP;个人博客:www.litan.tech。
本文系阅读李玉斌老师发表在电化教育研究上的论文《虚拟学习社区中隐性知识传播研究》上所做的笔记,由于水平有限,如果理解上存在误差,还请批评指正。
本文介绍了日本nonaka教授提出的知识转换形式,如下图所示:
综合化是显性知识经过扩散、综合形成更为系统和复杂的显性知识的过程;内隐化是学习者将获得的知识、经验经过反思、总结,形成个体隐性知识的过程;社会化是在一定的环境和氛围中分享他人的经验、共享隐性知识的过程;外显化是个体隐性知识借 助于一定的条件转化成可以让大家共享的群体知识的过程。这四个过程不是简单的、重复的过程,而是开放的、螺旋上升的过程。
国内学者针对性的优化了该模型
随后国内的相关学习又基于应用心理学的“顿悟学习”和“量子学习”模型的思想提出在顿悟学习基础之上的量子知识创造(Q-SECI)模型。
M.David Merrill(梅瑞尔)是第二代教学设计(ID2)的代表人物。其在对ID2进行多年的研究基础之上归纳出了“第一教学原理集(FPI)”,他认为:
在虚拟学习社区中,上述四个传播过程不是简单的,重复的过程,而是开放的,螺旋上升的过程。
作为一名非科班出身的教育技术学研究生,理论水平十分有限,阅读过程中难免存在理解上的偏差,还请各位同仁批评指正。研究方向:复杂系网络计算与知识传播,感兴趣的同学可以和我交流,互相学习。微信公众号:SMNLP;个人博客:www.litan.tech。