【python学习笔记】os包部分函数分析

本文是作者学习Python的笔记,分享os包在文件操作中的应用。作者强调了学习编程语言的关键点,包括理解语法、掌握常用库、遵循规范。在资料选择上,作者建议根据自身情况选择书籍或视频课程,并推荐注重实践的学习方法,多敲代码、提问和实验。文章以os包的文件操作函数为实例进行介绍。
摘要由CSDN通过智能技术生成

碎碎念

想要学习python已经很久了,但是一直走走停停,每次起身都是从头开始,因为没有连续的学习计划,可以说所有的尝试都是浪费时间。今年总算走到大四了,专业课程补考也都过了,在找工作之余有时间充实一下自己,找了一本书从头认真学习。为了更好的混进csdn,混进开源社区,也是为了鞭策自己,遂开了这个头,以后所有的学习经历都会好好记录下来,也希望能给求学的后来人有帮助。
中间有一些学习方法的建议,不需要的直接拉到最后看代码部分。所有总结都以注释的形式写在代码块中。

语言学习

学习编程语言的路线是清晰明了的。对于一个正常的理工科大学生来说,对于计算机的接触应该很多。语言学习无非一下几点,

  • 语法正确
  • 功能扩展
  • 格式规范

很多人学完语法就认为自己已经掌握了某某语言了,但其实并非如此。且不说机器如何实现,要掌握一门语言起码要对其常用的扩展包能熟练运用,对自己以往在其他语言中实现的数据结构也能搬过来。这样,才是一个完美的入门。

资料选择

python的学习资料根本不缺,很多人都可以依据自己的学习习惯去选择合适的资料。但无论市面上的书籍还是网络上的视频,名字都当当响什么快速入门,什么7天掌握,反正吹的怎么样都不过分。但是资料选择恰恰是入门的关键一步,如果选择不好,会直接影响学习的积极性和效率。

  • 关于视频课

视频课的好处是有老师带着,而且还有很多同伴一起看着视频学习。很多在网上投稿课程的老师都会有联系方式,这就使得我们在学习过程中遇到问题有人可问,有路可走。但是,视频课并不适合入门。 视频的投稿者往往已经深谙此道,讲课的时候无意间就会使用让初学者摸不着头脑的表达。这些小的疑点会让学习者如鲠在喉,继续听吧,心里不安,停下来求教吧,发现越扯越大,如果搞明白这一个小问题,都不用继续看视频了,都学会了。
但是视频课不是没有用的。如果有的同学有编程基础,或者是其他语言转过来的,那么视频课就可以选择了。计算机语言嘛,融会贯通,大家都差不多的。此外视频课在提高部分会特别有用。例如想学python的某个包啊,想做一个小项目啊。这时跟着视频走会非常顺利,慢慢的顺着视频的思路,上手会很快。
总体来说,视频课由于节奏掌握在授课老师的手里,所以效率会低一些。有的地方懂了,视频却为了顾及大多数人讲的很慢。此外,免费课程由于没有付出和监督,许多人也看着看着就不看了。

  • 关于书籍

书籍是学习的好工具。选择一个合适的书自学,学习会变得得心应手。当有不懂的问题时,带着书去求问,也会方便很多。书籍推荐部分就不写了,但是所有的书大概有两类:一类注重基础,一类注重应用。
对于没有编程经验的人来说,选择一本事无巨细的超基础书非常好。最好每一个内容从变量创建到函数操作都有例子讲解,会迅速提升自信,建立编程的总体认识。
对于有其他语言基础的人来说,太详细的书会显得累赘,推荐大家使用偏向应用的书籍。这种书籍语法部分会很少的篇幅讲完,非常适合理工科的学生使用。在一个个生动的工程中,可以扩展思维,了解这门语言的优势,也可以更快的实现自己的“想法”。
总体来说,一门语言的学习是没有尽头的,很多程序猿手边都会放一本辞海级别的大部头,在遇到问题的时候翻一翻,但这种书也只是工具类,不要拿着这种书啃,这就和学英语背词典一样愚蠢。

学习方法

选择好合适的资料,就需要合适的学习方法。在有大片大片时间的时候,做一个计划也是不错的选择。但学习语言的要点是 多敲代码 ,无论什么语言,多敲代码才会进步。
如果学习过计算机基础知识,那融会贯通的对比学习也是非常重要的。寻找语言的不同,比较各种语言语法的优劣。试着思考语言的底层运作,至少在内存层面多去品味。
还有一个是多提问,多实验。语言的规范是非常严格具体的,而在大多数我们只是使用皮毛。许多语言的语法有模棱两可的地方,发现它,玩弄它,你就会慢慢的从一个学习者变成一个支配者。有的人觉得这样说太自大了,但最近我在看《C专家编程》《C陷阱和缺陷》这两本书,越来越觉得我们在学习的过程中就应该善于思考,很多问题在我们初次学习就会隐隐的埋在心里,试着表达出来,就会极大的提升自己。这也是我今后会记录的主要内容。下面就来进入今天的正题。

os文件操作函数功能测试

############################################# 文件操作包。###########################################
#     																						#
#
##

# --------------------------os包------------------------ #
#| os 包包括了目录创建,目录删除,文件删除,执行操作系统命令等方法|#
# —----------------------------------------------------- #

import os
#remove方法,删除指定文件
rmfile = "myFile"
if os.path.exists(rmfile):		#path 模块功能,检查文件是否存在
	os.remove(file)
else:
	print(rmfile+" Not Found!")

#mkdir方法,创建指定名称的目录,如果目录存在会出现错误,所以一般先检查目录是否存在
mkdirs = "myDir"
if not os.path.exists(mkdirs):
	os.mkdir(mkdirs)
else:
	print(mkdirs+" exist!")

#rmdir方法,删除指定名称的目录,
if os.path.exists(mkdirs):
	os.rmdir(mkdirs)
else:
	print(mkdirs+" Not Found!")

#system方法,以操作系统命令作为参数,执行参数指定的命令。
cur_path = os.path.dirname(__file__)
os.system("clear")
os.system("mkdir dir2")
os.system("cp system.py \dir2")
file = cur_path + "\dir2\system.py "
os.system("vim "+file)

# ##-------------os.path模块---------------##
# ## 对文件路径和文件名进行操作,可以单独导入使用 ##
# 	1  abspath()		返回指定文件的绝对路径
# 		此方法只是将文件名添加到当前目录的后面,并不会搜索文件,只做一个字符串处理,
# 		也不会检测名称是否合法。当文件名开头为/时,直接输出文件名
# 	2  basename()		返回文件名或最后的路径名
# 		此方法只会将路径字符串最后一个/后面的字符串返回,只做一个字符串处理
# 	3  dirname()		返回文件的路径名,不包括文件名 __file__
# 		同样只是字符串处理。当参数开头时/时返回一个/,当有多个/时返回除去文件名称和
# 		最后一个/的字符串
# 	4  exists()			检查指定文件或路径是否存在
# 		此方法可以检测路径或文件是否存在,也是仅有的检测方法
# 	5  getsize()		返回指定文件的大小 Byte
# 		接受一个文件名或完整文件路径,返回文件大小。前者默认当前路径。
# 		若文件不存在或无法找到,会报错
# 	6  isabs()			检查路径是否为完整路径
# 		判断字符串开头是否是/,如果是/返回Ture,不是返回False。
# 		仅仅是一个字符串处理函数,并不会检测路径的正确性
# 	7  isfile()			检查路径是否指向文件
# 		此函数会依据参数寻找文件是否存在,不是简单的字符串处理
# 		如果文件不存在,或者路径错误都会返回False
# 	8  isdir()			检查路径是否为目录
# 		同上,函数会依据参数寻找目录是否存在,若参数错误或者不是目录名
# 		则会返回False
# 	9  split()			把文件路径名分割成“路径”和“文件”
# 		字符串处理函数,将最后一个/分割的两个字符串作为元组返回
# 		若没有/则第一个项为空,若只有一个/且为开头,则第一个元素为/
# 	10 splitdirve()		把文件路径名分割成“磁盘名”和“文件路径名”
# 		测试机器为单固态mac,无论输入怎样的参数,磁盘名始终为空
# 		接上U盘之后,分割U盘内的完整路径,磁盘名也是空
# 		仿照windows下的路径方式,添加盘符,结果也为空
# 	11 join()			把路径名和文件名合并成完整路径
# 		第一个参数为路径,第二个参数为文件名。参数正确性不检测,只做字符串处理
# 		对应参数的格式必须正确,但路径名的格式似乎没有要求,无论输入什么都会接受
# 		文件名必须是不以/开头的文件名
# 		文件名以/开头,则会输出完整的文件名字符串
# 			以上的文件名,路径名只代表参数,不代表参数本身的意义
# # ----------------------------------------

import os
file1 = os.path.abspath("system.py")
print(file1)
file2 = os.path.basename(file1)
print(file2)
file3 = os.path.dirname("sdfe/sdfwe/wef")
print(file3)
yorn = os.path.exists(file1)
print(yorn)
filesize = os.path.getsize("/Users/wch/Desktop/myfunc.c")
print("The size of the file is {}".format(filesize)+" Byte.")
yorn = os.path.isabs("sdfe/sdfe/dfe/")
print(yorn)
yorn = os.path.isfile("/Users/wch/Desktop/")
print(yorn)
yorn = os.path.isdir("/Users/wch/Documents/dir2")
print(yorn)
cutpath1,cutpath2 = os.path.split(file1)
print(cutpath1+" "+cutpath2)
cutpath1 = os.path.splitdrive("/Volumes/DEEPINOS/ef")
print(cutpath1)
filename = "\\sd/feir2"
pathname = "\sktop\\"
fallname = os.path.join(pathname,filename)
print(fallname)

# --------------------os.walk模块------------------##
# 根据测试,os.walk 模块的返回值应该是一个元组,数组每一项 #
# 是一个有三个元素的元组,分别是 路径 目录列表 文件列表   ##
# ------------------------------------------------##

import os
import sys
cur_path = os.path.dirname(__file__)
simtree = os.walk(cur_path)
for dirname,subdir,files in simtree:
	print("path:",dirname)
	print("dirs:",subdir)
	print("files:",files)
	print()

step1 = (1,"壹","one")
step2 = (2,"贰","two")
step3 = (3,"叁","three")
mytree = (step1,step2,step3)
for s1,s2,s3 in mytree:
	print("s1:",s1)
	print("s2:",s2)
	print("s3:",s3)
	print()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值