.md是什么文件_文件腾转挪移操作,那都不是事儿

最近公众号内推送了我的系列视频教程《python文本分析:从入门到精通》,这个课程的分享原则是只讲最简单最好用的知识,用最少的时间去解决最头疼的问题。这样对于人文社科类的python初学者会降低认知压力,增强学习自信。

今天我们汇总整理下文件读写的一些事情,对文本分析系列课做一些有意义的补充。涉及到的库包括os、shutil、zipfile

获取信息

代码功能

os.getcwd("path")

获取代码当前工作路径

os.listdir("path")

获取当前工作文件夹内的文件夹或文件

os.scandir("path")

获取当前工作文件夹内的文件夹或文件

os.walk(top)

通过在top中游走输出在top中的文件名,向上或者向下。每次遍历对象返回的是三元组(root,dirs,files)

改变文件系统

文件系统因为下面的操作发生变化,比如压缩解压、新建文件夹、复制移动、移除

代码功能

os.chdir("path")

更改当前工作路径为path

os.path.join(dir1,dir2,dir3,...)

路径拼接为dir1/dir2/dir3

os.makedirs("dir1/dir2")

创建文件夹

os.remove("my_file_path")

移除一个文件

os.rmdir("path")

会删除path路径文件夹,如果path内有文件,移除path会报错

os.rename("old", "new")

对old这个文件或者路径更改为新名new

shutil.copy("source", "destination")

复制一个文件或者文件夹(source)到另外一个文件夹(destination)

shutil.move("source", "destination")

移动一个文件或者文件夹(source)到另外一个文件夹(destination)

shutil.rmtree("my_directory_path")

移除一个文件夹及其内部的所有文件和文件夹

压缩与解压

代码功能

dzipfile.ZipFile('zip文件.zip', 'w')

新建zip文件

zipfile.ZipFile('zip文件.zip', 'r')

打开zip文件

一、获取信息

1.1 os.getcwd()

获取当前工作路径

import os os.getcwd()

运行得到

'/Users/suosuo/Desktop/20190224文件系统操作方法概括'

1.2 os.listdir()

获取当前工作文件夹内的文件夹或文件

os.listdir()

得到

['.DS_Store', '未命名.ipynb', '.ipynb_checkpoints', 'data', 'data2']

1.3 os.scandir()

获取当前工作文件夹内的文件夹或文件。类似于os.listdir(),但是返回的是可迭代对象

os.scandir()

运行结果

遇到上面的,我们就要想到for循环迭代,看看ta是什么鬼

for f in os.scandir():   if not f.is_file(): #is_file判断是否是文件       print('这是文件夹:',f)   else:       print('这是文件:', f)   #print(type(f), f)
这是文件: 这是文件: 这是文件夹: 这是文件夹: 这是文件夹: 

1.4 os.walk()

随机漫走

os.walk(top='data')

运行得到

得到生成器的数据,也是要想到for循环迭代

for x in os.walk(top='.'):   print(x)
('.', ['.ipynb_checkpoints', 'data', 'data2'], ['.DS_Store', '未命名.ipynb'])('./.ipynb_checkpoints', [], ['未命名-checkpoint.ipynb'])('./data', ['test'], ['.DS_Store'])('./data/test', [], ['.DS_Store', '学习文件操作.txt'])('./data2', [], [])

二、改变文件系统

2.1 os.chdir()

变换工作路径

print(os.getcwd())os.chdir('/Users/suosuo/Desktop')os.getcwd()
/Users/suosuo/Desktop/20190224文件系统操作方法概括
'/Users/suosuo/Desktop'

2.2 os.path.join()

拼接多个字符串,形成新的路径字符串。os.path.join()内不能传入tuple

os.path.join('desktop', 'data', 'python学习.md')

运行得到

'desktop/data/python学习.md'

下面的代码,是个bug

path = ('desktop', 'data', 'python学习', '笔记.md')os.path.join(path)
---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last) in      1 path = ('desktop', 'data', 'python学习', '笔记.md')----> 2 os.path.join(path)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/posixpath.py in join(a, *p)    78     will be discarded.  An empty last part will result in a path that    79     ends with a separator."""---> 80     a = os.fspath(a)    81     sep = _get_sep(a)    82     path = a
TypeError: expected str, bytes or os.PathLike object, not tuple

2.3 os.makedirs()

创建新的文件夹

os.chdir('20190224文件系统操作方法概括')os.makedirs('data2')

2.4 os.remove()

移除一个文件

os.remove('data/移除.txt')

2.5 os.rmdir()

移除文件夹,但是这个被移除的文件夹必须是空的才能移除

#test内有文件,所以移除会报错os.rmdir('data/test')
---------------------------------------------------------------------------OSError                                   Traceback (most recent call last) in ----> 1 os.rmdir('data/test')
OSError: [Errno 66] Directory not empty: 'data/test'

2.6 os.rename(old, new)

将old文件名(或路径)改为new文件名(或者路径)

os.rename('data/test/重命名rename.txt', 'data/test/重命名rename2.txt')

2.7 shutil.copy(src, dst)

将src复制到dst中

import shutil shutil.copy('data/移除.txt', 'data2')

data2文件夹中多了一个 "移除.txt"

2.8 shutil.move(src, dst)

将src移动到dst中

shutil.move('data/dong.txt', 'data2')

data文件夹中的dong.txt消失了,data2中出现了dong.txt文件

2.9 shutil.rmtree()

移动一个文件夹内的全部文件和文件夹

shutil.rmtree('data2')

三、压缩与解压

这部分内容实际上之前分享过文件的压缩与解压库-zipfile、tarfile,今天就当复习一下吧。zipfile和tarfile是python内置库

3.1 新建zip文件

对data文件夹进行压缩

import zipfile#将 “三体.txt” 压缩到 “三体.zip”中with zipfile.ZipFile('三体.zip', 'w') as z:      #请注意这里写的是当前文件夹下的文件名   z.write('三体第一部.txt')   z.write('三体第二部.txt')   z.write('三体第三部.txt')

当前文件夹中出现 “三体.zip” 文件

3.2 解压zip文件

with zipfile.ZipFile('三体.zip', 'r') as z:   # 查看压缩包中的文件列表   print(z.namelist())   # 解压 “三体.zip”中的 “三体第一部.txt”文件   z.extract('三体第一部.txt')      # 解压,在当前文件夹下会出现一个名为"三体extractall"的文件夹   z.extractall('三体extractall')    
['三体第一部.txt', '三体第二部.txt', '三体第三部.txt']

当前文件夹出现一个 “三体extractall” 文件夹

回复关键词“20190225”,得到本文jupyter notebook下载链接

AD、转发、好看bd3047c1234c677d53e3f3797ae231d8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值