Python OS模块 文件、目录操作和 open() 文件读写 Cheatsheet
我们经常会与文件和目录打交道,对于这些操作python提供了一个os模块,里面包含了很多操作文件和目录的函数。全部函数可以用help(os)或是dir(os)查看其用法。
常用的函数如下:
©著作权归作者所有:来自51CTO博客作者AIOPS_DBA的原创作品,如需转载,请注明出处,否则将追究法律责任
https://blog.51cto.com/wangwei007/1217082
关于BASE_DIR和sys.path
工程文件夹下有多个包文件夹,import module 的时候会遇到需要改变sys.path的情况,那么,如何获取到当前文件的父目录(即工程根目录)的绝对路径呢?
首先,python文件有一个内置变量__file__,该变量在命令行下是当前文件名,在pycharm下回自动变成当前文件的绝对路径
为了使代码在命令行下也有效,需要把__file__变成绝对路径:os.path.abspath(__file__)
然后取父目录:BASE_DIR = os.path.dirname(os.path.abspath(__file__))
最后:sys.path.append(BASE_DIR)
附:文件读写Cheatsheet
#########1. 大文件的读写######### # 对于大数据文件,要用以下方式(the best way): f=open('小重山.txt','r',encoding='utf8') number=0 for i in f:#这是for内部将f对象做成一个迭代器,用一行去一行。 # 如果用f.readlines(),则文件一次性整体读入内存,耗时长 number+=1 if number == 6: i = ''.join([i.strip(), 'iiiii']) # 取代万恶的+ # print(i.strip()) print(i.strip()) #########2. tell和seek######### print(f.tell())# 取出光标位置 print(f.read(2)) print(f.tell())# 一个汉字占3个位置 f.seek(0)# 移动光标到指定的位置(0表示行首) print(f.read(4)) #########3. flush######### flush():同步将数据从缓存转移到磁盘上去 #进度条实例 # 如果不加flush,则30个星号在循环结束时一次性写入磁盘 import sys,time for i in range(30): sys.stdout.write("*") sys.stdout.flush() # 这两行也可以写成print('*', end='', flush=True) time.sleep(0.1)
如果这篇文章帮助到了你,你可以请作者喝一杯咖啡