python文件操作

记录在我使用python过程中用到的文件操作,我使用python主要是用来解决自动化的问题,不仅仅是工作上的问题也有解决我自己自动化的工具,python是可以跨平台的而bat脚本只能在windows上跑

路径转义符

对于路径中含有转义字符,在路径字符串前加 r,比如 filepath = r'E:\Code\test.txt'

从相对路径或含../的路径获取完整路径: os.path.abspath(xxx)

文本读取和修改

使用默认的系统函数 open,并添加encoding,使用with 代替try finally 切保一定会调用close释放文件,示例

    with open(test_blog,'r',-1,encoding="utf-8") as sw:

逐行读取并替换内容

def alter(file,old_str,new_str):
    """
    替换文件中的字符串
    :param file:文件名
    :param old_str:就字符串
    :param new_str:新字符串
    :return:
    
    """
    file_data = ""
    with open(file, "r", encoding="utf-8") as f:
        for line in f:
            if old_str in line:
                line = line.replace(old_str,new_str)
            file_data += line
    with open(file,"w",encoding="utf-8") as f:
        f.write(file_data)
 
alter("file1", "09876", "python")

写入内容

# 打开一个文件
fo = open("foo.txt", "w")
fo.write( "www.runoob.com!\nVery good site!\n")
 
# 关闭打开的文件
fo.close()

参考: python-修改文件内容并保存的3种方法

文件和目录操作

创建文件夹:os.mkdir

文件拷贝:shutil.copyfile(src_fullpath, path_name)

删除文件:os.remove(file_name)

python调用资源管理器打开某个文件夹:os.startfile(full_path)

进入某个目录,此后的操作是在这个目录下:os.chdir(full_path)

文件夹拷贝

如果目录存在需要先删除,否则会报目录不为空不可访问

if os.path.exists(dst_path):
	print("exist path,delete", dst_path)
	shutil.rmtree(dst_path)

shutil.copytree(src_path, dst_path)
posted @ 2021-06-13 10:44  赵青青  阅读(186)  评论(0编辑  收藏  举报