Python - 写入 CSV 文件和 for 循环
Python - Writing to CSV files and for loops
编辑批准的答案是正确的,我的所有数据都出现在文件中,但是由于它正在循环并将每条信息写入新行,因此数据是无组织的,并以级联模式出现。此时它只是一个格式问题。有人遇到过类似的问题吗?
我有一个 for 循环,我在其中定义了多个变量。我需要将这些变量中的值打印到 CSV 文件中,而无需一遍又一遍地覆盖这些行。我知道解决这个问题的方法是将 "with open" 语句放在 for 循环之外,但是 python 不再识别我的变量。
我认为解决方案的另一部分是将数据附加到变量中,这样您就可以在 for 循环之外调用它,但我不确定如何针对我的情况执行此操作。
示例:
for item in my_list:
info = inspect.getmembers(item)
name = info[0]
import csv
with open("sample.csv", "w") as csvFile:
fieldnames = ['Item Name']
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Item Name': name })
csvFile.close()
在此示例中,无法定义变量 "name",因为它是在 for 循环中定义的。
import csv
with open("sample.csv", "w") as csvFile:
fieldnames = ['Item Name']
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
writer.writeheader()
for item in list:
info = inspect.getmembers(item)
name = info[0]
writer.writerow({'Item Name': name })
将 with
放在循环之前,以便您可以从 for 循环中将值写入文件:
import csv
with open('sample.csv', 'w') as csvFile:
fieldnames = ['Item Name']
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
writer.writeheader()
for item in list:
# get the data you want from item
info = inspect.getmembers(item)
name = info[0]
# write the data to the file
writer.writerow({'Item Name': name })
注意(因为我还没有足够的声誉来发表评论):csvFile.close()
在 Rohan 的答案中找到是不必要的,因为它由 with
语句处理。此外,根据 PEP8,他应该使用 2 个空格而不是 4 个缩进。
编辑批准的答案是正确的,我的所有数据都出现在文件中,但是由于它正在循环并将每条信息写入新行,因此数据是无组织的,并以级联模式出现。此时它只是一个格式问题。有人遇到过类似的问题吗?
我有一个 for 循环,我在其中定义了多个变量。我需要将这些变量中的值打印到 CSV 文件中,而无需一遍又一遍地覆盖这些行。我知道解决这个问题的方法是将 "with open" 语句放在 for 循环之外,但是 python 不再识别我的变量。
我认为解决方案的另一部分是将数据附加到变量中,这样您就可以在 for 循环之外调用它,但我不确定如何针对我的情况执行此操作。
示例:
for item in my_list:
info = inspect.getmembers(item)
name = info[0]
import csv
with open("sample.csv", "w") as csvFile:
fieldnames = ['Item Name']
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow({'Item Name': name })
csvFile.close()
在此示例中,无法定义变量 "name",因为它是在 for 循环中定义的。
import csv
with open("sample.csv", "w") as csvFile:
fieldnames = ['Item Name']
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
writer.writeheader()
for item in list:
info = inspect.getmembers(item)
name = info[0]
writer.writerow({'Item Name': name })
将 with
放在循环之前,以便您可以从 for 循环中将值写入文件:
import csv
with open('sample.csv', 'w') as csvFile:
fieldnames = ['Item Name']
writer = csv.DictWriter(csvFile, fieldnames=fieldnames)
writer.writeheader()
for item in list:
# get the data you want from item
info = inspect.getmembers(item)
name = info[0]
# write the data to the file
writer.writerow({'Item Name': name })
注意(因为我还没有足够的声誉来发表评论):csvFile.close()
在 Rohan 的答案中找到是不必要的,因为它由 with
语句处理。此外,根据 PEP8,他应该使用 2 个空格而不是 4 个缩进。