我有一个脚本,我正在尝试优化工作,我基本上需要用脚本的用户名替换脚本中的“用户名”。我最终想要一遍又一遍地为一个人列表这样做,但我遇到了一个看似非常基本的部分的问题。
f = open("Exiting.txt","r") #opens file with name of "exiting.txt"
line1 = (f.readline())
line2 = (f.readline())
line3 = (f.readline())
line4 = (f.readline())
line5 = (f.readline())
line6 = (f.readline())
line7 = (f.readline())
ext = input("Enter a name to exit: ")
lst = [line1,line2,line3,line4,line5,line6,line7]
for line in lst:
line = line.replace("username",ext)
print(line1)
line1 = line1.replace("username",ext)
print(line1)
当我运行这个时,我得到的第一个打印输出与以前完全相同(并且所有其他行也一样),第二行更像我想要的
我希望for循环遍及用实际用户名替换单词username
的行。
输入要退出的名称:millingtonc
mkdir“\ qnapnas01 \ archive \ Data \ Users \ username”
mkdir“\ qnapnas01 \ archive \ Data \ Users \ millingtonc”
答案 0 :(得分:0)
我认为问题在于您要更改变量l
的值,而不是line1
或变量lst
本身中的l1
。以下代码可以帮助您解决问题:
lst = [line1,line2,line3,line4,line5,line6,line7]
for i in range(len(lst)):
lst[i] = lst[i].replace("username",ext)
我不确定最终的结果,但基本的想法是你可以更改列表中的值并实际替换你要求的字符串。
答案 1 :(得分:0)
更改for循环中的字符串不会更改line1
变量。此外,您可能应该找到一种更好的方法来从文件中读取,这可以帮助您避免此问题。我在下面提出了一种方法,但是还有很多其他方法可以完成基本相同的事情。
ext = input("Enter a name to exit: ")
with open("Exiting.txt", "r") as f:
lst = [f.readline() for _ in range(7)]
lst = [line.replace("username", ext) for line in lst]
print(lst)