🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅
✒️个人主页:小鹏linux
💊个人社区:小鹏linux(个人社区)欢迎您的加入!
目录
1、python中的os 模块
1.1使用 os 模块对文件操作
有些时候,需要对文件进行重命名、删除等一些操作,Python 的 os 模块中都有这么功能 |
1.1.1使用 os 模块对文件重命名 rename()
rename(需要修改的文件名, 新的文件名) |
import os os.rename(" 程序猿自身修养.txt", " 程序员自身修养.txt")
概述
os.rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。 |
语法
rename()方法语法格式如下: |
os.rename(src, dst)
参数
|
返回值
该方法没有返回值 |
实例
以下实例演示了 rename() 方法的使用: |
#!/usr/bin/python # -*- coding: UTF-8 -*- import os, sys # 列出目录 print "目录为: %s"%os.listdir(os.getcwd()) # 重命名 os.rename("test","test2") print "重命名成功。" # 列出重命名后的目录 print "目录为: %s" %os.listdir(os.getcwd())
执行以上程序输出结果为:
目录为: [ 'a1.txt','resume.doc','a3.py','test' ] 重命名成功 [ 'a1.txt','resume.doc','a3.py','test2' ] |
1.1.2使用 os 模块对删除文件 remove()
remove(待删除的文件名) |
import os os.remove(" 程序员自身修养.txt")
概述
os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。 在Unix, Windows中有效 |
语法
remove()方法语法格式如下: |
os.remove(path)
参数
path -- 要移除的文件路径 |
返回值
该方法没有返回值 |
实例
以下实例演示了 remove() 方法的使用: |
#!/usr/bin/python # -*- coding: UTF-8 -*- import os, sys # 列出目录 print "目录为: %s" %os.listdir(os.getcwd()) # 移除 os.remove("aa.txt") # 移除后列出目录 print "移除后 : %s" %os.listdir(os.getcwd())
执行以上程序输出结果为:
目录为: [ 'a1.txt','aa.txt','resume.doc' ] 移除后 : [ 'a1.txt','resume.doc' ] |
1.2使用 OS 对文件夹的相关操作:
1.2.1创建文件夹
不能创建./小鹏/test/hehe |
1.2.2创建多层目录
import os os.makedirs(" 小鹏/ 小李/ 小王")
1.2.3获取当前目录
import os os.getcwd()
1.2.4改变默认目录
进入到某个目录,或者是切换目录 |
import os os.chdir("./../")
1.2.5获取目录列表,包含文件和目录
import os print(os.listdir("./"))
1.2.6删除文件夹
删除目录 path,要求 path 必须是个空目录,否则抛出 OSError 错误 |
import os os.rmdir(" 小鹏")
删除不为空的目录 |
import shutil shutil.rmtree(“aa”)
1.3批量创建
import os os.mkdir("./test") os.chdir("./test") print(os.getcwd()) i = 1 while i<=10: open("人民的名义-%d.avi"%i,"w") i+=1 print("创建完毕")
1.4批量修改文件名
import os os.chdir("./test") i = 1 while i<=10: os.rename("人民的名义-%d.avi"%i,"[小鹏出品]-人民的名义-%d.avi"%i) i+=1
import os #得到要批量修改的目录名 folder = input("请输入您要批量修改的文件目录名称:") os.chdir(folder) #得到文件夹下所有文件名 fileNames = os.listdir() #遍历文件夹下所有文件并修改名称 for fileName in fileNames: print(fileName) #新名字 newFileName = "[宏福出品]-"+fileName os.rename(fileName,newFileName) print("重命名后的文件:") for fileName in os.listdir(): print(fileName)
2.Python 换行符问题
2.1Python 换行符问题:
先知道结果: 在 linux 和 mac 系统上我们读写文本文件使用二进制方式或者文本方式都可以,因为在处理\n 都是一样的;那么读写文本文件和二进制文件的时候,可以使用 r 和 w 模式或者 rb 和 wb 模式。 在 window 中的换行是\r\n,当我们使用程序以文本方式写入一个\n 的时候,默认会帮我们加上\r,这样打开文件的时候才能得到换行的效果; 所有在 window 上读写文本文件的时候, 建议使用 r 或者 w 模式。 在读写二进制文件的时候,建议用 rb 和 wb 模式。 不同操作系统换行符是不一样的 在处理文本数据的时候体现在不同操作系统处理\r\n 是不一样的 不同操作系统 换行符是不一样的 |
linux -->\n unix-->\n mac--> 老版本(\r)-->\n windows -->\r\n |
对应换行符 windows 遇到\r\n 才换行显示
2.2python中对于长句子换行的问题
首先明确两个概念,物理行和逻辑行。 • 物理行 物理行是指语句在文本编辑中的一行 • 逻辑行 逻辑行则是python语句在python编译器里的一行。所以有些很长的语句,为了方便阅读,我们可以把它放到不同的物理行中。但是python在特定情况仍然会把不同物理行当作一个逻辑行,在这种python的编译器会自动将物理行中的换行符去掉。一般情况下,在[],(),{}中的不同物理行都会被当成一个逻辑行看待。例如: |
a = [1,2,3,4,5] print(a) [1, 2, 3, 4, 5] a = [1,2, 3,4,5] # 这个是 [] 内部的换行编译器自动处理为一个逻辑行 print(a) [1, 2, 3, 4, 5]
甚至可以在括号内加注释,例如: |
a = (1,#注释可以放在这 2, 3) print(a) (1, 2, 3) a = {'key1':1, # 这是一个{} 的例子 'key2':2} print(a) {'key1': 1, 'key2': 2} a = {'key1'# 也可以这样用 :1, 'key2':2} print(a) {'key1': 1, 'key2': 2}
函数的参数由于是在()之内,所以也可以这样操作 |
def my_fun(a, #函数也可以这样断行 b,c): print(a,b,c) my_fun(10,20,30) my_fun(10,# 也可以这样调用 20, 30) 10 20 30 10 20 30
但是如果在非括号中,则需要用 \ 当作转义符,例如: |
a = 20 b = 30 c = 40 if a>5 and b>10 and c>20: print('a={},b={},c={}'.format(a,b,c)) # 也可以这样写 if a>5 \ and b>10 \ and c>20: #注意,这里 \ 后的缩进并不重要,因为编译器把这多个物理行当成一个逻辑行了 print('a={},b={},c={}'.format(a,b,c)) a=20,b=30,c=40 a=20,b=30,c=40
对于字符串,如果用三个单引号,或者三个双引号包括的字符串,那么中间的所以换行符都会保留,例如: |
a = '''this is a string''' a 'this is a string' print(a) this is a string a = '''this is a string''' # 这里 is后边的换行符将被保留 a # 注意is 后边的换行符\n 'this is\na string' print(a) # 打印出来的话,注意是两行 this is a string
如果不想保留换行符,需要用单引号'',但是需要转义符 \,如下: |
a = 'this is \ a string' a # 注意a中没有换行符 'this is a string' print(a) # a中没有换行符 this is a string
如果需要在字符串中包含 \,则需要用 \\。 |
a = 'this is a \\ string' #用 \\ 来表示\ a # 这时候看到两个 \ (\\),但是不要慌,因为print出来就对了 'this is a \\ string' print(a) # print a之后,只有一个 \ this is a string
👑👑👑结束语👑👑👑