标签:python 3.5 文件操作 o/i
这是一个python3.5对文件操作的整理,里面有复制/改名/覆盖输入/追加输入等等。
前提:在E盘的PythonAAA/A的文件夹下,有一个123.txt
1)覆盖输入
>>>import os #启动模块 >>>f=open("e:/PythonAAA/A/123.txt","w+") #打开目标文件,w+是以读写方式打开,同r+ >>>f.write("我爱北京天安门") #写入内容就是歌词 7 >>>f.close() #关闭文件,这一步至关重要!有开有关。
【补充】如果在改路径下没有123.txt这个文件,那么这样就会直接生成123.txt这个文件。
这种f=open的方式在打开文件之后一定要close(),不然这个文件一直会在后台运行,windows下使用ctrl+alt+del下是可以看到这个进程的,如果总觉得自己会忘记close(),可以使用with as方法,上面的句子可以这么写:
>>>with open("e:/PythonAAA/A/123.txt") as f: f.write("我爱北京天安门")
2)追加输入
如果是with as方法打开文件的话, 那么write默认都是追加输入,比如
>>> with open("e:/PythonAAA/A/123.txt","a") as f: f.write("\n 伟大领袖毛主席 \t 带领我们向前进") #\n和\s效果自己看
效果如下:
如果要用f=的方法,那么第一行要f=open("e:/PythonAAA/A/123.txt","a") ,这里a就是add的意思。
3)文件改名
如果想要把这个 123.txt改成456.txt,很简单,一句话就能做到。
>>> import os >>> os.rename("e:/PythonAAA/A/123.txt","e:/PythonAAA/A/456.txt")
这个效果立竿见影。
4)文件复制
想要把e:/PythonAAA/A/123.txt复制到e:/PythonAAA/B这个文件夹里,同样叫123.txt。
>>> import shutil >>> shutil.copy("e:/PythonAAA/B/123.txt","e:/PythonAAA/A/123.txt")
【补充】这个语句的前提是必须要有B这个文件夹,不然的话,会报错。
5)目录删除
e:/PythonAAA/B/C这个文件夹不想要了,删除之。
>>> import shutil >>> shutil.rmtree("e:/PythonAAA/B/C")
6)文件删除
e:/PythonAAA/B/456.txt这个文件不想要了,删除之。
>>> import os >>> os.unlink("e:/PythonAAA/B/456.txt")
os.remove效果也一样,语句也一样。
7)文件剪切粘贴
e:/PythonAAA/B/123.txt剪贴粘贴到e:/PythonAAA/A/123.txt。
>>> import shutil >>> shutil.move("e:/PythonAAA/B/123.txt","e:/PythonAAA/A/123.txt")
8)综合练习
要求把e:/PythonAAA/A里所有.py文件都复制到e:/ABC/CBA这个文件夹里。
>>> import os >>> os.makedirs("e:/ABC/CBA") #建立/ABC/CBA这个文件夹,如果是一层文件夹os.mkdir就行 >>> def copyFiles(sourceDir,targetDir): for files in os.listdir(sourceDir): sourceFile = os.path.join(sourceDir,files) targetFile = os.path.join(targetDir,files) try: if os.path.isfile(sourceFile) and sourceFile.find(‘.py‘)>0: #可以试试不加>0的后果 shutil.move(sourceFile,targetFile) except FileNotFoundError: print("此文件夹不存在,请重新检查!") >>> copyFiles("e:/PythonAAA/B","e:/ABC/CBA")
要么无错误输出,要么就会有多少个.py文件就会返回多少次“此文件夹不存在,请重新检查!”
本文出自 “生活就是等待戈多” 博客,请务必保留此出处http://chenx1242.blog.51cto.com/10430133/1769866
标签:python 3.5 文件操作 o/i
原文地址:http://chenx1242.blog.51cto.com/10430133/1769866