# -*- 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()