Python 从for循环和列表写入.csv文件
我是python新手,但我已经在Stack Overflow、google和CodeAcademy上搜索了我的答案或灵感,这显然是一个非常简单的问题。我想找到一个简单的例子,其中使用for循环来保存每个交互很容易找到,但我要么错过了它,要么没有声音来提出正确的问题。所以,对于这个简单的问题,请不要在显示器前大声叹息。谢谢 我想简单地写一个csv文件,在下面的代码中,在一个单独的列中包含两个打印行的每次迭代。因此,输出示例可能如下所示: ################## andy.dat, 8 brett.dat, 9 candice.dat, 11 #################Python 从for循环和列表写入.csv文件,python,csv,for-loop,Python,Csv,For Loop,我是python新手,但我已经在Stack Overflow、google和CodeAcademy上搜索了我的答案或灵感,这显然是一个非常简单的问题。我想找到一个简单的例子,其中使用for循环来保存每个交互很容易找到,但我要么错过了它,要么没有声音来提出正确的问题。所以,对于这个简单的问题,请不要在显示器前大声叹息。谢谢 我想简单地写一个csv文件,在下面的代码中,在一个单独的列中包含两个打印行的每次迭代。因此,输出示例可能如下所示: ################## andy.dat, 8
lines = list()
# Populate list
for filename in os.listdir(image_path):
lines.append((filename, len(filename))
# Print list
for line in lines:
print("%s, %d" % (line[0], line[1]))
# Or more simply
for line in lines:
print("%s, %d" % line)
如果我试着去做
x = filename
然后我只得到循环的最后一次迭代,写入x。如何使用for循环将它们全部写入x?另外,如何在csv中将其作为列写入,并在其旁边显示len(文件名)的打印结果?谢谢。我可能会改变这个:
for filename in os.listdir (image_path):
print filename
print len(filename)
差不多
lines = list()
for filename in os.listdir(image_path):
lines.append("%s, %d" % (filename, len(filename)))
我的版本创建了一个python,然后在for循环的每次迭代中,都向它添加一个条目
完成后,您可以使用以下内容打印行:
for line in lines:
print(line)
或者,您可以首先在第一个循环中创建元组列表,然后在第二个循环中格式化输出。这种方法可能看起来像:
##################
andy.dat, 8
brett.dat, 9
candice.dat, 11
#################
lines = list()
# Populate list
for filename in os.listdir(image_path):
lines.append((filename, len(filename))
# Print list
for line in lines:
print("%s, %d" % (line[0], line[1]))
# Or more simply
for line in lines:
print("%s, %d" % line)
最后,您实际上不需要显式存储文件名长度,只需计算并动态显示即可。事实上,您甚至不需要创建一个列表并使用两个循环
您的代码可以简单到
import sys, os
image_path = "C:\\"
for filename in os.listdir(image_path):
print("%s, %d" % (filename, len(filename))
当
file
构造函数中的a
打开文件进行追加时,您可以阅读更多有关使用file
对象的不同模式的信息。尽管对于此任务,您不需要它,但我会尽可能利用标准库模块,如。试试这样的
import os
import csv
csvfile = open('outputFileName.csv', 'wb')
writer = csv.writer(csvfile)
for filename in os.listdir('/'): # or C:\\ if on Windows
writer.writerow([filename, len(filename)])
csvfile.close()
试试这个:
# Part 1
import csv
import os
# Part 2
image_path = "C:\\"
# Part 3
li = [] # empty list
for filename in os.listdir(image_path):
li.append((filename, len(filename))) # populating the list
# Part 4
with open('test.csv', 'w') as f:
f.truncate()
writer = csv.writer(f)
writer.writerows(li)
说明:在第1部分中,
我们导入模块
os
和csv
在第二部分中,
我们声明
image\u路径
现在的循环..
在第三部分中,
我们声明一个空列表(li
)。
然后我们进入一个for循环,在该循环中,我们用每个项目填充列表,并在image\u path
中显示其长度。
在第4部分中,
我们开始编写csv文件。在声明中,我们将li
中的所有数据写入了我们的文件。您的代码无法工作!您的命名空间中没有os.listdir
!!是否只列出文件?因为os.listdir
列出文件和文件夹。。。