在文章末尾续写内容
使用open函数的a模式,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
详见 Python open() 函数
比如,我们每个文件夹下都有一个需要追加内容的文件,我们要在每个文件后末尾另起一行,加上一句话:“(全文完)”
运行成功后输出提示:
可以看到文章末尾已经被插入(全文完)
注意:如果文章前后有空格换行符等,影响插入效果,可以先用strip()函数清除首尾空白符 Python去除文章首尾空格换行符
代码如下:
import os #导入模块
def add_content(): #定义函数名称
for foldName, subfolders, filenames in os.walk(path): #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
for filename in filenames: #遍历列表下的所有文件名
if filename.endswith('.txt'): #当文件名以.txt后缀结尾时
f = open(os.path.join(foldName,filename),"a") #以追加模式打开文件
f.write("\n(全文完)") #在文章结尾处添加一个换行符 以及 (全文完)
f.close() #关闭文件
print( os.path.join(foldName,filename),'added content successfully!') #输出提示
if __name__ == '__main__':
path = r'E:\我的学习\编程\Python\PythonTest2\Test2' #运行程序前,记得修改主文件夹路径!
add_content() #调用定义的函数,注意名称与定义的函数名一致
在文章内某一行插入内容
比如,我们想在(全文完)前加入两行内容:
真是个
好故事!
运行成功后会有提示:
可以看到已经插入成功
或者想要插入多行内容,不用换行符的话,可以用三引号代替,详见 Python中的三引号的用法
代码如下:
import os #导入模块
def add_rows(): #定义函数名称
for foldName, subfolders, filenames in os.walk(path): #用os.walk方法取得path路径下的文件夹路径,子文件夹名,所有文件名
for filename in filenames: #遍历列表下的所有文件名
if filename.endswith('.txt'): #当文件名以.txt后缀结尾时
f = open(os.path.join(foldName,filename),"r") #以只读模式打开文件
data_list=f.readlines() #读取所有行内容,作为列表存储
count=len(data_list) #计算列表元素数量,也就是行数
data_list.insert(count-1, '\n真是个\n好故事!') #在存储内容的倒数第一行前插入两行
f.close #关闭只读模式的文件
f = open(os.path.join(foldName,filename), 'w') #将文件以写模式打开,注意这种模式打开会清空文件内容,因此需要先以制度模式打开,并存储文件内容
f.writelines(data_list) #将所有行写入
f.flush() #把缓冲区中的内容放到磁盘中
f.close #关闭文件
print( os.path.join(foldName,filename),'added content successfully!') #输出提示
if __name__ == '__main__':
path = r'E:\我的学习\编程\Python\PythonTest2\Test2' #运行程序前,记得修改主文件夹路径!
add_rows() #调用定义的函数,注意名称与定义的函数名一致