gpt4 book ai didi

python - 如何更改此脚本以包含重命名功能?

转载 作者:行者123 更新时间:2023-12-01 06:10:04 26 4
gpt4 key购买 nike

下面包含当前脚本,该脚本进入扩展名为 .las 的文件,并将某些字符串替换为其他字符串(即:cat -> kitten、dog -> puppy)。

我想要的只是在这个脚本中添加一个功能,当我运行脚本时,该功能会将任何 .las 文件重命名为当前目录中的某个名称(即:*.las -> Animals.las)。

我会将一个文件拖到此目录中,运行脚本,该脚本执行文本替换和重命名,然后将该文件移出当前目录。因此,对于这个脚本,我不在乎它将多个 .las 文件重写为单个名称。

# read a text file, replace multiple words specified in a dictionary
# write the modified text back to a file

import re
import os
import time

# the dictionary has target_word:replacement_word pairs
word_dic = {
'cat' : 'kitten',
'dog' : 'puppy'
}


def replace_words(text, word_dic):
"""
take a text and replace words that match a key in a dictionary with
the associated value, return the changed text
"""
rc = re.compile('|'.join(map(re.escape, word_dic)))
def translate(match):
return word_dic[match.group(0)]
return rc.sub(translate, text)

def scanFiles(dir):
for root, dirs, files in os.walk(dir):
for file in files:
if '.las' in file:
# read the file
fin = open(file, "r")
str2 = fin.read()
fin.close()
# call the function and get the changed text
str3 = replace_words(str2, word_dic)
# write changed text back out
fout = open(file, "w")
fout.write(str3)
fout.close()
#time.sleep(1)



scanFiles('')

我将在线示例中的脚本粘贴在一起,因此我不知道它的所有内部工作原理,因此如果有人有更优雅/有效的方法来执行此脚本正在执行的操作,我愿意更改它。

最佳答案

如果您想最终得到一个名为animals.las的文件,其中包含*.las的内容,那么您可以更改scanFiles函数以在循环开始时打开animals.las,写入每个文件的翻译输出*.las文件复制到animals.las,然后关闭animals.las:

def scanFiles(dir): 
fout = open("animals.las", "w")
for root, dirs, files in os.walk(dir):
for file in files:
if '.las' in file:
# read the file
fin = open(file, "r")
str2 = fin.read()
fin.close()
# call the function and get the changed text
str3 = replace_words(str2, word_dic)
# write changed text back out
fout.write(str3)
#time.sleep(1)
fout.close()

关于python - 如何更改此脚本以包含重命名功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6347870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com