我有一个函数,它接受一个列表,将其转换为字符串,然后将其输出到.txt文件,但是当我检查文本文件时,它会使每个条目加倍。我已经找到了答案,但找不到答案,如果之前有人问过道歉。 我的代码:
workers = ["John","Mark"]
# Prints list of employees to file
def printAllWorkers():
strList = str(workers).strip('[]')
with open('EmployeeList.txt','w') as file:
for item in workers:
file.write(strList)
因此,列表应该显示' John',' Mark',而是显示' John',' Mark','' ; John',' Mark'
我要么只想输出一次列表(首选),要么取出文本文件并删除任何重复项。
谢谢!
答案 0 :(得分:0)
实际上,您在每次迭代时都在编写整个列表strList
,您可以按如下方式修复它:
workers = ["John","Mark"]
# Prints list of employees to file
def printAllWorkers():
with open('EmployeeList.txt','w') as file:
file.write(', '.join(workers))
答案 1 :(得分:0)
您编写两次创建的字符串。不要遍历worker并为每个worker编写整个输出。只做一次:
def printAllWorkers():
strList = str(workers).strip('[]')
with open('EmployeeList.txt','w') as file:
file.write(strList)
文件内容:
'John', 'Mark'
答案 2 :(得分:0)
从for循环中取出write命令,它会显示两次,因为你在一个有2个条目的循环中显示它
答案 3 :(得分:0)
那是因为您在最后一行告诉程序每个项目将列表写入文件一次。用item替换file.write(strlist)中的strlist,它将按预期工作。
要清楚你的最后一行需要是file.write(item)
答案 4 :(得分:0)
只需删除for循环,因为您在工作者列表中迭代了ever元素,2个元素,并且输出 strList 两次。
workers = ["John","Mark"]
# Prints list of employees to file
def printAllWorkers():
strList = str(workers).strip('[]')
with open('EmployeeList.txt','w') as file:
file.write(strList)
答案 5 :(得分:0)
您可以继续使用相同的代码,但将file.write(strList)
替换为file.write(item)
。您正在迭代,但编写列表而不是迭代值。
要么这样做:
workers = ["John","Mark"]
def printAllWorkers():
#strList = str(workers).strip('[]')
with open('EmployeeList.txt','w') as file:
for item in workers:
file.write(item)