os-example.py

# -*- coding: utf-8 -*-

# @File    : os-example.py
# @Date    : 2018-09-21
# @Author  : Peng Shiyu

import string
import os
import shutil

# 使用os 模块重命名和删除文件
def replace(filename, search_word, replace_word):
    """
    对文件中的词进行替换
    :param filename: {str} 文件路径
    :param search_word: {str} 需要替换的词
    :param replace_word: {str} 替换之后的词
    :return: None
    """
    temp_file = os.path.splitext(filename)[0] + ".tmp"
    back_file = os.path.splitext(filename)[0] + ".bak"

    # 移除temp文件
    try:
        os.remove(temp_file)
    except os.error:
        pass

    # 逐行替换的新内容写入temp文件
    f = open(filename, "r")
    ft = open(temp_file, "w")

    for line in f.readlines():
        ft.write(string.replace(line, search_word, replace_word))

    ft.close()
    f.close()

    # 移除bak文件
    try:
        os.remove(back_file)
    except os.error:
        pass

    # 对源文件备份,temp文件改名
    os.rename(filename, back_file)
    os.rename(temp_file, filename)

# 使用os 列出目录下的文件
def print_files():
    for f in os.listdir("."):
        print(f)

# 使用os 模块改变当前工作目录
def change_dir():
    print(os.getcwd())  # 获得当前工作目录
    os.chdir("..")   # 改变当前工作目录
    print(os.getcwd())

# 使用os 模块创建/删除多个目录级
def make_dirs():
    filename = "temp/upload"
    os.makedirs(filename)
    # OSError: [Errno 17] File exists: 'temp/upload'

    with open(os.path.join(filename, "temp.txt"), "w") as f:
        f.write("ooxx")

    os.removedirs(filename)
    # OSError: [Errno 66] Directory not empty: 'temp/upload'

# 使用os 模块创建/删除目录
def make_dir():
    filename = "temp"
    os.mkdir(filename)
    os.rmdir(filename)

# shutil 模块中的rmtree 函数 删除非空目录
def remove_tree():
    shutil.rmtree("source")

if __name__ == '__main__':
    old = "十"
    new = "10"
    filename = "source/file.txt"
    # replace(filename, old, new)
    remove_tree()