如何使用python代码,从当前文件夹一个文件里复制字符到另一个文件夹下的同名文件里,文件有多个!

用python向一个文件夹里遍历所有文本文件,并从中提取出指定内容,写到另一个文件夹下的文件里,要求文件名相同,因为文件较多不想一个一个手动写文件名,我还如何操作,请各位... 用python向一个文件夹里遍历所有文本文件,并从中提取出指定内容,写到另一个文件夹下的文件里,要求文件名相同,因为文件较多不想一个一个手动写文件名,我还如何操作,请各位老师不吝赐教 展开
 我来答
博迷月听鸟09
2019-01-17 · 超过21用户采纳过TA的回答
知道答主
回答量:39
采纳率:55%
帮助的人:27.7万
展开全部
import os

# 参数设置
# 自行定义源文件地址和目标地址
_TARGET_DIR = "./copied_files/"
_SOURCE_DIR = "./source_files/"

# 你自己定义的提取特定信息的方法:
def extract(filename):
    # 提取信息后返回
    with open(filename, "r") as f:
    info = f.readlines()
    return info

# 使用os.listdir()方法获取源文件夹中所有文件
# 有时系统内会有些隐藏文件以"."开头,需要剔除
files = [file for file in os.listdir(_SOURCE_DIR) if not file.startswith(".")]


for filename in files:
    # 1.读取文件并提取信息:
    print("正在处理{}...".format(filename))
    info = extract(_SOURCE_DIR + filename)
    # 2.在目标文件夹创建同名文件,并将信息写入
    # 写入部分或需要根据需要调整
    with open(_TARGET_DIR + filename, "w") as f:
        for line in info:
        f.write(line)
        
print("处理完成!")
albumin
2019-01-17 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2327万
展开全部
import os
import re
reg=re.compile("指定内容正则表达式")
source="一个文件夹路径"
target="另一个文件夹路径"
for filename in os.listdir(source):
    fullname=os.path.join(source,filename)
    targetfile=os.path.join(target,filename)
    if os.path.isfile(fullname) and os.path.splitext(filename)[1].lower()==".txt":
        text=reg.search(open(fullname).read()).group(0)
        open(targetfile,'w').write(text)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祭司0o
2019-01-17
知道答主
回答量:22
采纳率:0%
帮助的人:6.8万
展开全部
import os,re
src_path = ''#src_path指源文件夹路径
des_path = ''#目标文件夹路径

pattern = re.compile(r'')#指定内容正则表达式

for root,paths,files in os.walk(src_path):
for file in files:#遍历源文件

with open(os.path.join(root, file), 'r') as f1:#打开源文件

with open(os.path.join(des_path, file), 'w+') as f2:#新建并打开新文件,文件名相同
f2.writer(pattern.match(f1.read()).group(0))#正则提取内容写入新文件,ps根据需要修改正则
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-01-17
展开全部
#! /usr/bin/env python
# coding=utf-8
import os
import shutil
import time
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
def copy_and_rename(fpath_input, fpath_output):
    for file in os.listdir(fpath_input):  
        oldname = os.path.join(fpath_input, file)
        newname_1 = os.path.join(fpath_output,
                                 os.path.splitext(file)[0] + "_1.jpg")
        newname_2 = os.path.join(fpath_output,
                                 os.path.splitext(file)[0] + "_2.jpg")
        newname_3 = os.path.join(fpath_output,
                                 os.path.splitext(file)[0] + "_3.jpg")       
        shutil.copyfile(oldname, newname_1)
        shutil.copyfile(oldname, newname_2)
        shutil.copyfile(oldname, newname_3)
if __name__ == '__main__':
    print('start ...')
    t1 = time.time() * 1000
    #time.sleep(1) #1s
    fpath_input = "D:/123/0708/"
    fpath_output = "D:/345/0708/"
    copy_and_rename(fpath_input, fpath_output)
    t2 = time.time() * 1000
    print('take time:' + str(t2 - t1) + 'ms')
    print('end.')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pololong0
2019-01-17 · TA获得超过380个赞
知道小有建树答主
回答量:497
采纳率:62%
帮助的人:84.8万
展开全部
os.walk()了解下,这个可以实现遍历。
总正则把符合的抓出来,然后在写入另外一个文件夹即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式