9.2 os模块_统计代码行数
目录
9.2 os模块
1.列出目录下的所有文件,以列表形式存储
import os
dir_list=os.listdir('D:\第九章 常用模块')
print(dir_list)
#输出:['.idea', '9.2 os模块.py', 'test.py']
2. rename ,重命名
os.rename(r'D:\第九章 常用模块\test.py',r'D:\第九章 常用模块\test1.py')
3 删除文件
os.remove(r'D:\第九章 常用模块\test1.py')
4 拼接路径
r'D:\第九章 常用模块\json\coco.json'
r'D:\第九章 常用模块\json/coco.json'
#不同操作系统拼接方式不一样
res=os.path.join(r'D:\第九章 常用模块\json','coco.json')
print(res)
输出:D:\第九章 常用模块\json\coco.json
会按照不同系统拼接处不同的路径
5.判断是否为一个文件
res=os.path.isfile(r'D:\第九章 常用模块\json\coco.json')
print(res)
输出:True
判断是否为文件夹
res=os.path.isdir(r'D:\第九章 常用模块\json')
print(res)
输出:True
用处
新建‘coco’.json,判断有没有用户,没有创建json文件夹。
6. 判断判断文件是否存在
res=os.path.exists(r'D:\第九章 常用模块\json\coco.json')
print(res)
输出:True
7.新建文件夹
os.mkdir(r'D:\第九章 常用模块\test')
8. 文件路径生成器
res=os.walk(r'D:\第九章 常用模块')
print(res)
#输出:<generator object walk at 0x0000029F3BCC4600>
#输出生成器
for i in res:
print(i)
# 输出:
('D:\\第九章 常用模块', ['.idea', 'json', 'test'], ['9.2 os模块.py'])
('D:\\第九章 常用模块\\.idea', ['inspectionProfiles'], ['.gitignore', 'misc.xml', 'modules.xml', 'workspace.xml', '第九章 常用模块.iml'])
('D:\\第九章 常用模块\\.idea\\inspectionProfiles', [], ['profiles_settings.xml'])
('D:\\第九章 常用模块\\json', [], ['coco.json'])
('D:\\第九章 常用模块\\test', [], [])
# 输出类型为元组tuple[0]为当前路径,为字符串形式;tuple[1]为当前路径下的文件夹,以列表形式存储,tuple[2]为当前路径下的文件,以列表形式存储。
# 会遍历到当前路径文件夹列表中所有文件夹
# 拿到json下的所有文件,文件路径+文件名,可以拼出路径,获取所有文件的绝对路径。
9. 分割文件名
print(os.path.split(r'D:\第九章 常用模块\test\test.py'))
输出:('D:\\第九章 常用模块\\test', 'test.py'),将文件名切割出来
- 小练习,统计项目行数
def count_code_lines(filedir):
res=os.walk(filedir)
count=0 #计数器,统计代码行数
for path,_,files_lis in res:
# res为一个生成器,每次生成一个元组取第一个元素和最后一个元素拼接就是文件路径
for file in files_lis:
filename=os.path.join(path,file)
#只要py文件
if filename.endswith('.py'):
with open(filename,'r',encoding='utf-8') as f:
file_count=0
for i in f:
if i.startswith('#') or i.startswith('\n'):
continue
count+=1
file_count+=1
print(f'{filename}有{file_count}代码')
print(f'总代码行数{count}')
if __name__ == '__main__':
count_code_lines(r'D:\第九章 常用模块')
额外补充:.ipynb文件批量转.py文件命令:jupyter nbconvert --to python *.ipynb
命令行运行统计代码:进入当前目录->输入命令:python test.py '要统计的文件夹'