Python 不要加上“&引用;CSV中最后一个字段之后
#这里我想要if条件检查它是否是行的最后一个元素,并添加“,”Python 不要加上“&引用;CSV中最后一个字段之后,python,csv,Python,Csv,#这里我想要if条件检查它是否是行的最后一个元素,并添加“,” #如果条件是每行的最后一个元素不添加“,” 如果您不能使用csv模块,join将是您在此的朋友: fw.write("\n") fw.close() f.close() 但您应该首先去掉行尾字符: for counter in range(length): fw.write(','.join(x[counter] for x in (item.split(',') for item in
如果您不能使用
csv
模块,join
将是您在此的朋友:
fw.write("\n")
fw.close()
f.close()
但您应该首先去掉行尾字符:
for counter in range(length):
fw.write(','.join(x[counter] for x in (item.split(',') for item in lst)))
fw.write('\n')
但是,您的代码既不是Pythonic,也不是高效的
在计数器的每次迭代中拆分相同的字符串,而在读取时可以拆分一次。接下来,对于迭代文本文件的行,Pythonic方法是迭代该文件。最后,与
确保文件将在块结束时正确关闭。您的代码可能会变成:
a=f.readline().strip()
length=len(a.split(","))
fw=open('output.csv', 'w')
lst = []
while a:
lst.append(a)
a=f.readline().strip()
您是否有理由不使用csv模块?是的,我不能使用模块和熊猫转置。我已将列转换为行,但它在每个元素后都添加了逗号,我不希望在每行的最后一个元素中,
csv
模块与Pandas不同,是标准库的一部分。
for counter in range(length):
fw.write(','.join(x[counter] for x in (item.split(',') for item in lst)))
fw.write('\n')
a=f.readline().strip()
length=len(a.split(","))
fw=open('output.csv', 'w')
lst = []
while a:
lst.append(a)
a=f.readline().strip()
with open('students.csv', 'r') as f, open('output.csv', 'w') as fw
lst = [a.strip().split(',') for a in f]
counter = len(lst[0])
for counter in range(length):
fw.write(','.join(x[counter] for x in (item for item in lst)))
fw.write('\n')