抖音风 裸舞 python的os模块详解

发布日期:2024-09-14 17:11    点击次数:161


抖音风 裸舞 python的os模块详解

        本章先容python自带模块os抖音风 裸舞,os为操作系统 operating system 的简写,意为python与电脑的交互。主要学习的函数有 os.getcwd()、os.chdir()、os.path.basename()、os.path.join()、os.path.exists()、os.path.isdir()、os.path.isfile()、os.listdir()、os.walk()、os.scandir()、os.stat()、os.mkdir()、os.makedirs()、os.rename()、os.remove()以及获取桌面旅途。目次连气儿有点不准,不够我调屡次也调不好,无法手动生成 王人是自动生成的,拼集一下。话未几说,参加正题。

目次

1.  满盈旅途、相对旅途

2.  满盈旅途的三种抒发形式

3.  os.getcwd()

4.  os.chdir()

5.  os.path.basename()

6.  os.path.join()

7.  os.path.exists()

8.  os.path.isdir()   、 os.path.isfile()

9.  os.listdir()

10.  os.walk()

11.  os.scandir()

12.  os.stat()

13.  os.mkdir()

14.  os.makedirs()

15.  os.rename()

(1)重定名

(2)挪动

(3)重定名并挪动

16.  os.remove()

17.  获取桌面的旅途

收尾

1.  满盈旅途、相对旅途

        主张:满盈旅途为一个完满的旅途。相对旅途为基于刻下默许旅途下的旅途,省去了刻下旅途的部分。

        例子:假如 刻下默许旅途为 D:\临时\python磨练\pandas。pandas文献夹下里还有 /merge/first/test.txt 文献夹及文献。那么test.txt文献的旅途:

满盈旅途D:\临时\python磨练\pandas\merge\first\test.txt相对旅途\merge\first\test.txt

        传授两个快捷时代获取文献的旅途:①在文献夹上方旅途处复制旅途。②按住shift 右击文献,此时会出现 “复制文献地址” 的选项,点击即可。关于文献,无疑是秩序②后来居上。

2.  满盈旅途的三种抒发形式

        (1)用单斜杠 / 来分隔文献夹。这是旅途是最佳抒发形式。

                如:'D: / 临时 / python磨练 / pandas'

        (2)用双反斜杠 \\ 来分隔文献夹。按照上述的②秩序获取的旅途王人所以单反斜杠 \ 来分隔的,如若手动把 \ 改为 / ,使命量有点大,此时不错聘用再加一个反斜杠变为双反斜杠,反斜杠在python中示意的真义是转义符,把具有特殊含义的后者转为不含任何真义的字符(用replace是不行的,因为\在python里发达为转义符,会报错,不信不错试试哈)

                如:'D: \\ 临时 \\ python磨练 \\ pandas'

        (3)在旅途前加上字母 r ,真义为 raw原始的。字母 r 加在字符串前能确保该字符串全是字符串边幅,如 \n也只是 \n,不再翻译为回车换行;\也只是\,不再翻译为转义符。把文献旅途复制粘贴后径直在前边加个 r 就行,该秩序是最苟简的,大推。

                如:r'D: \ 临时 \ python磨练 \ pandas'

3.  os.getcwd()       获取刻下文献场所的旅途。
import osprint(os.getcwd())

图片

图1 os.getcwd()

        默许景象下,os.getcwd()输出的是刻下正在裁剪的 ipynb或 py文献场所的旅途。

4.  os.chdir(path)       改变刻下旅途,改变后,默许旅途为改变后的旅途。
os.chdir(r'D:\临时\python磨练\pandas')print(os.getcwd())

图片

图2 改变默许旅途 os.chdir

         改变旅途可不是只是输出为path那么大约抖音风 裸舞,它关于文献的读取和写入相等苟简。

5.  os.path.basename(p)       获取旅途中的终末一个文献夹名字。
print(os.path.basename(r'D:\临时\python磨练\pandas'))

图片

图3 os.path.basename

         顾惜,若传入的旅途为文献,如 r'D:\临时\python磨练\pandas\test.txt',复返的范围是文献名 test.txt。

6.  os.path.join(path, *paths)       拼接旅途。
p1 = r'D:\临时\python磨练\pandas'p2 = r'merge\test.txt'print(os.path.join(p1,p2))

图片

图4 os.path.join 7.  os.path.exists(path)       判断旅途 path是否存在。
print(os.path.exists(r'D:\临时\python磨练\pandas'))print(os.path.exists(r'D:\临时\python磨练\pandas\3D图.csv'))

图片

8.  os.path.isdir(path, /)   、 os.path.isfile(path)       前者判断path是否为文献夹,后者判断path是否为文献。
r1 = r'D:\临时\python磨练\pandas'r2 = r'D:\临时\python磨练\pandas\merge\test.txt'print(os.path.isdir(r1))print(os.path.isfile(r2))

图片

图5 判断是否文献夹或文献 9.  os.listdir(path=None)

        输出path旅途下悉数文献及文献夹,复返范围为一个列表。(不遍历基层)

图片

图6 我的指定旅途下的文献
print(os.listdir(r'D:\临时\python磨练\pandas'))

图片

图7 os.listdir

        当传入指定 path时,输出该旅途下的文献及文献夹,如图6,图中蓝色的为文献夹。

        当不传入 path时,有两种情况:①若莫得建立 os.chdir(path)去指定默许旅途,则输出刻下代码文献场所目次下的文献及文献夹。②若建立了 os.chdir(path1),则输出该path1旅途下的文献及文献夹。

        “ 不遍历嵌套文献夹 ” 真义是:即使merge文献夹下还有文献,那么这个文献也不会得到输出,即仅遍历刻下层。(如若想要输出嵌套文献夹下的悉数文献,可见底下第9点 os.walk(path) )

爱色堂 10.  os.walk(top, topdown=True, οnerrοr=None, followlinks=False)       轮回遍历top旅途下的悉数文献,该旅途基层的文献及文献夹。

        top:旅途,顶层旅途

        topdown:不错瓦解为加速速率,无谓管,默许为True

        onerror:当有作假时,不错用界说的函数去输出作假

        followlinks:默许为False,真义不大

        该函数必须传入旅途,复返3个变量值。第一个为文献夹满盈旅途,第二个为子文献夹的列表,第三个为根目次下悉数文献的列表。先看第一个 (i):

for (i,j,k) in os.walk(r'D:\临时\python磨练\pandas'):    print(i)

图片

图8 os.walk输出 i

         i 得到的是该旅途下悉数文献夹的满盈旅途(看图6,该旅途下有个merge文献夹)。再看 j :

for (i,j,k) in os.walk(r'D:\临时\python磨练\pandas'):    print(j)

图片

图9 os.walk输出 j

         j 得到的是对应 i 旅途下含有的文献夹,每个 i 的旅途输出一个列表。['merge']的由来是因为 D:\临时\python磨练\pandas下有个merge文献;[]的由来是因为 D:\临时\python磨练\pandas\merge下莫得文献夹了。再看 k:

for (i,j,k) in os.walk(r'D:\临时\python磨练\pandas'):    print(k)

图片

图9 os.walk输出 k

        k 得到的是对应 i 旅途下含有的文献,每个 i 的旅途输出一个列表。这里输出的两个列表的由来,和 j 相通,就不逐一阐发了。

        由此,经常轮回遍历某旅途下悉数文献以及旅途的秩序是把 i 和 k 集结:

for (i,j,k) in os.walk(r'D:\临时\python磨练\pandas'):    for l in k:        print(i+'/'+ l)

图片

图10 轮回遍历文献夹下的全部文献

         此时,位于基层merge文献下的 test.txt 也打印了出来,这是与 os.listdir()即图7的分袂。

11.  os.scandir(path=None)       加速迭代速率,把需要迭代的本体放在一个迭代对象里,而不是像os.listdir()相通把范围存在列表中(放在列表占用遍及内存)

图片

图11 os.scandir

         可见复返的是一个可迭代对象,作用是减少内存占用,加速驱动速率。除此除外,它还不错看望文献的各式属性。如获取文献/文献夹名,文献/文献夹满盈旅途,是否为文献夹,是否为文献,以及属性。

for i in os.scandir(r'D:\临时\python磨练\pandas'):    print(i)    print(i.name)    print(i.path)    print(i.is_dir())    print(i.is_file())    print('-'*70)

图片

图12

         笔据属性,还不错索取文献的大小(单元为kb,文献夹大小为0kb)、最近看望时期、最近修改时期、window系统下的创建时期、linux系统下的创建时期等。这里以文献大小 .st_size为例

文献大小.st_size最近看望时期.st_atime最近修改时期.st_mtimewindow系统下的创建时期.st_ctimelinux系统下的创建时期.st_birthtime
for i in os.scandir(r'D:\临时\python磨练\pandas'):    print(i.name,i.stat().st_size,'kb')

图片

图13 输出文献大小的属性 12.  os.stat(path, *, dir_fd=None, follow_symlinks=True)       获取文献的属性。能获取的属性与上头相通,不再访佛。
a = os.stat(r'D:\临时\python磨练\pandas\3D图.csv')print(a)print(a.st_size,'kb')

图片

图14 os.stat 13.  os.mkdir(path, mode=511, *, dir_fd=None)       创建旅途(文献夹),若该旅途已存在,则报错。(只可创建一层)

        path:旅途

        mode:看望权限,默许为511,即悉数东谈主王人可看望。在window系统下,mode参数会被忽略。

        (1)当旅途已存在:(现在已存在的旅途:D:\临时\python磨练\pandas\merge )

图片

图15 旅途已存在 则报错

        (2)创建两层文献夹:

os.mkdir(r'D:\临时\python磨练\pandas\merge\concat\join')

图片

图16 创建两层文献夹 报错

        用os.mkdir()去创建两层文献夹(merge → concat)是不允许的,每次只可创建一层。

        (3)创建一层文献夹:

图片

图17 创建一层 生效驱动而莫得报错 14.  os.makedirs(name, mode=511, exist_ok=False)         创建旅途(文献夹),能一次创建多层。

        在驱动该代码前,首先要删掉第13中创建的文献夹,回到领先的景象,苟简不雅察范围(即 D:\临时\python磨练\pandas\merge 目次下莫得文献夹)

os.makedirs(r'D:\临时\python磨练\pandas\merge\concat\join')print('生效')

图片

图18 os.makedirs

        os.mkdir 一次只可创建一层,而 os.makedirs 一次能创建多层,则即是它们之间的分袂。

15.  os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)       重定名/挪动文献或文献夹。

        src:原文献旅途

        dst:重定名/挪动后的文献旅途

        首先在 D:/临时/python磨练/pandas 目次下手动创建3个word文献用于现实:重定名before.docx、挪动before.docx、重定名并挪动before.docx

        (1)重定名

                把文献 '重定名before.docx' 重定名为 '重定名after.docx'。

os.rename(r'D:/临时/python磨练/pandas/重定名before.docx',r'D:\临时\python磨练\pandas\重定名after.docx')

图片

        (2)挪动

                把文献 '挪动before.docx' 由 'D:/临时/python磨练/pandas' 挪动到 'D:\临时' ,不改变定名。

os.rename(r'D:\临时\python磨练\pandas\挪动before.docx',r'D:\临时\挪动before.docx')

图片

        (3)重定名并挪动

                 把文献 '重定名并挪动before.docx' 由 'D:/临时/python磨练/pandas' 挪动到 'D:\临时' ,同期定名改为 '重定名并挪动after.docx ' 。

os.rename(r'D:\临时\python磨练\pandas\重定名并挪动before.docx',r'D:\临时\变变变.docx')

图片

        总的来说,重定名把名字改了就行;挪动把旅途改了就行;挪动并重定名则同期改旅途和名字。

        如若后旅途不存在,会报错 “找不到旅途” 。

        需要顾惜的是,更名字的时候防御不要把文献的后缀弄没了,如若确凿不防御弄没了后缀,不错点击文献夹的左上角 “查抄”,把 “文献拓展名” 勾上,然后手动加上后缀名。要防御幸免此类问题。下图为不防御把 .docx后缀弄没了的文献,该文献由于莫得后缀,系统不可识别该文献是什么类型。

图片

图19 没了后缀的文献 16.  os.remove(path, *, dir_fd=None)         删除文献。防御该操作,不进回收站,删除后是很难找总结的,忽视不要用紧要的文献去现实。

图片

图20 删除文献os.remove 17.  获取桌面的旅途

给全国传授一个不常见但相等有效的东西:获取桌面的旅途。

    os.path.expanduser('~')   获取电脑用户名及旅途

        获取到用户名的旅途后,用os.path.join()拼接即可获取桌面旅途。

user = os.path.expanduser('~')desktop = os.path.join(user,'Desktop')print(user)print(desktop)

图片

         有什么用途呢,幻想一下你写了一个秩序把驱动出来的范围保存在excel里,想要把这个excel文献保存在对方桌面(为什么保存到桌面,因为松开化去驱动秩序,让莫得学过编程的一又友看着桌面自动生成了一个excel文献,他们的酷爱赶紧就来了,那种仰望的观点,谁懂!!)的时候,就需要获取电脑的桌面旅途了,这种秩序的过失是在电脑改变了桌面旅途后便不适用。固然,这只是一个小例子,其他用处还有好多,待诸位小伙伴发掘,然后共享出来。

收尾

        os 模块操作最多的是旅途和文献夹,波及到对文献的文献未几。

        如若想要用python模块去批处置文献,关于重定名,挪动等,os仍是不错作念到的。然则更高等的功能,比如文献的复制,剪切,以及使用通配符*去查找稳妥条目的文献就相比艰巨了,经常要使用到其他库,如shutil, glob,fnmatch 等库,如若小伙伴对这方面感酷爱,不错提前进行了解。

        可能后续我也会更新shutil, glob,fnmatch 等库,然则一篇著述的输出、排版、想考如何才能讲得明晰昭彰王人需要遍实时期。把我学到的常识用我方的瓦解、我方的想维写出来,有输入有输出,同期能锤真金不怕火我方的写稿、组织、大约明了化和其他才气抖音风 裸舞,现在我可能讲的不够层次,然则我也在和全国沿途卓越,沿途加油。

本站仅提供存储管事,悉数本体均由用户发布,如发现存害或侵权本体,请点击举报。




Powered by 哥要色 @2013-2022 RSS地图 HTML地图

Copyright © 2013-2024

栏目分类

热点资讯

相关资讯