Python 如何使用字典根据用户输入替换另一个文件中的值?

Python 如何使用字典根据用户输入替换另一个文件中的值?,python,dictionary,replace,Python,Dictionary,Replace,我想从用户那里获取orgname、用户名、密码的输入,并替换下面提到的Sample.py文件中的值。示例文件: try: functions.set_values(orgname='Sample', username='Sample1', password='xyz') except: bail('test failed') 以下是我写的: while True: try: org_data = {} orgname = str(input(

我想从用户那里获取orgname、用户名、密码的输入,并替换下面提到的Sample.py文件中的值。示例文件:

try:
   functions.set_values(orgname='Sample', username='Sample1', password='xyz')
except:
   bail('test failed')
以下是我写的:

while True:
    try:
        org_data = {}
        orgname = str(input('Enter orgname: '))
        username = str(input('Enter username: '))
        password = str(input('Enter password: '))

        org_data[orgname] = orgname
        org_data[username] = username
        org_data[password] = password

        break

    except ValueError:
        print('Invalid Input. Try again.')

src_file = open('Sample.py', "rt")
dest_file = open(f'Sample_{orgname}.py', "wt")
for line in src_file:
    for key,value in org_data:
        dest_file.write(line.replace(key, value))
src_file.close()
dest_file.close()
我得到以下错误:

Traceback (most recent call last):
  File "./replace_org.py", line 44, in <module>
    for key,value in org_data:
ValueError: too many values to unpack (expected 2)
回溯(最近一次呼叫最后一次):
文件“/replace_org.py”,第44行,在
对于键,组织单元数据中的值:
ValueError:要解压缩的值太多(应为2个)

部分原因可能是,您正在解包字典,因此需要访问.items()

src_file=open('Sample.py',“rt”)
dest_file=open(f'Sample_{orgname}.py',“wt”)
对于src_文件中的行:

对于键,org_data.Items()中的值:#看起来您正在使用用户输入作为字典中的键和值?这是故意的吗?您得到的
ValueError
很可能不是代码的唯一问题。请看,您不仅需要指定您正在尝试执行的操作,还需要指定您所获得的结果和/或错误。强烈建议还提供可运行的示例输入数据。我需要从用户处获取仅用于键的值的输入,然后为这些输入创建字典,以便预定义键。根据定义的字典,我需要替换Sample.py中的值抱歉,我仍然不理解,请添加输入文件和结果输出的示例。此外,正如@endesa所提到的,您的字典数据毫无意义,因为其中的所有值都与其对应的键相同。i、 e.
{'psf':'psf','guido':'guido','password':'password'}
而类似于
{'orgname':'psf','username':'guido','password':'newpw'}
的内容更有意义。谢谢您的回复。我添加了:
对于key,org_data.items()中的值:
,但没有运气。我不确定我是否正确地创建了org_data[]dict,因为我只接受值的输入。@Shivam:正如我之前所评论的,除了这里重复的
ValueError
,您的代码还有其他问题。提示:每行可以写零次或多次(每次不同),而不是一次。
src_file = open('Sample.py', "rt")
dest_file = open(f'Sample_{orgname}.py', "wt")
for line in src_file:
    for key,value in org_data.Items(): #<---- unpack the values like this
        dest_file.write(line.replace(key, value))
src_file.close()
dest_file.close()