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)
如果这篇文章帮助到了你,你可以请作者喝一杯咖啡

浙公网安备 33010602011771号