gpt4 book ai didi

python - 使用用户输入搜索并替换 .txt 文件中的字符串

转载 作者:行者123 更新时间:2023-12-01 01:20:59 24 4
gpt4 key购买 nike

背景:我正在尝试自动化工作流程的某些部分。我采取的手动步骤:我收到一张更改文本文件内 ID 的票证。我必须浏览网络共享文件夹,创建文件备份,将复制的文件推送到存档文件夹中,然后使用票证中的 ID 编辑现有文件。

我正在尝试创建:一个小程序,它会询问我要更改什么ID(文本文件中有预先存在的ID),然后它将进入文件内部并找到匹配项。然后我希望程序询问我要将 ID 更改为什么。我希望程序使用我的输入编辑现有文件,保存它,然后关闭它。

到目前为止,我有以下代码完成了第一部分(复制文件并将其推送到存档文件夹中)。我有第二个功能,我被困住了。我知道第二个功能不起作用,但希望其他人提供他们认为我应该尝试的建议。我已经看到了 fileinput 模块,但我读到它不是最好的模块,我应该尝试在没有 fileinput 模块的情况下对其进行编程。

代码:

import shutil
import datetime
import os
import fileinput

original_file = "\\network\\path\\to\\file"

def date_rename_file():
todays_date = datetime.datetime.now()
stripped_time = todays_date.strftime('%Y%m%d')
shutil.copyfile(original_file, "\\network\\path\\to\\backupfolder\\device_"+str(stripped_time)+".txt")

def device_id_replace():
original_id = input("What device ID are you needing to replace?")
new_id = input("What is the new device ID?")
with open(original_file, 'w') as devicetxt:
for line in devicetxt:
print(line)
if original_id in line:
print("Found "+original_id)

date_rename_file()
device_id_replace()

谢谢,请随意删除我的代码:)我仍在学习中,并且非常感谢您的任何意见。另外,如果我遗漏了任何相关信息,请随时告诉我!

最佳答案

你可以试试这个:

def device_id_replace():
original_id = input("What device ID are you needing to replace?")
new_id = input("What is the new device ID?")
with open(original_file, 'r+') as devicetxt: #r+ is for read and write
string = devicetxt.read() #read into one string
string = string.replace(original_id, new_id) #replacement
devicetxt.truncate(0) #To clear contents of file before writeback
devicetxt.seek(0) #Put the file's current position at 0
devicetxt.write(string) #writeback to file

此外,最好将 original_file 作为字符串传递给函数。请参阅下面编辑后的代码:

import shutil
import datetime
import os
import fileinput

original_file = "\\network\\path\\to\\file"

def date_rename_file(filepath):
todays_date = datetime.datetime.now()
stripped_time = todays_date.strftime('%Y%m%d')
shutil.copyfile(filepath, "\\network\\path\\to\\backupfolder\\device_"+str(stripped_time)+".txt")

def device_id_replace(filepath):
original_id = input("What device ID are you needing to replace?")
new_id = input("What is the new device ID?")
with open(filepath, 'r+') as devicetxt: #r+ is for read and write
string = devicetxt.read() #read into one string
string = string.replace(original_id, new_id) #replacement
devicetxt.truncate(0) #To clear contents of file before writeback
devicetxt.seek(0) #Put the file's current position at 0
devicetxt.write(string) #writeback to file

date_rename_file(original_file)
device_id_replace(original_file)

关于python - 使用用户输入搜索并替换 .txt 文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53841765/

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