我是python的新手,但我已经在Stack Overflow,google和CodeAcademy上搜索了我明显非常简单的问题的答案或灵感。我想找到一个简单的例子,其中使用for循环来保存每个交互很容易找到,但我要么错过它,要么没有词汇提出正确的问题。因此,请不要在这个简单的问题上在显示器前大声叹息。感谢。
我想在下面的代码中单独列中的两个打印行的每次迭代中编写一个csv文件。所以输出示例可能如下所示:
################## andy.dat, 8 brett.dat, 9 candice.dat, 11 #################
我到目前为止的代码是:
import sys
import os.path
image_path = "C:\\"
for filename in os.listdir (image_path):
print filename
print len(filename)
如果我尝试
x = filename
然后我只得到写入x的循环的最后一次交互。如何使用for循环将所有这些内容写入x?另外,如何将其作为csv中的列写入,并在其旁边打印结果为len(filename)?感谢。
答案 0 :(得分:2)
虽然对于这项任务你不需要,但我会尽可能利用标准库模块,如csv
。试试这样的事情,
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()
答案 1 :(得分:0)
我可能会改变这个:
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 list
,然后在for循环的每次迭代中,向其附加一个条目。
完成后,您可以使用以下内容打印行:
for line in lines:
print(line)
或者,您最初可以在第一个循环中创建元组列表,然后在第二个循环中格式化输出。这种方法可能如下所示:
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))
答案 2 :(得分:0)
import sys
import os
image_path = "C:\\"
output = file("output.csv", "a")
for filename in os.listdir (image_path):
ouput.write("%s,%d" % (filename, len(filename)))
a
构建器中的file
打开要附加的文件,您可以阅读有关使用file
对象here的不同模式的更多信息。
答案 3 :(得分:0)
试试这个:
# 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
在第2部分中,
我们声明image_path
。
现在for
循环..
在第3部分中,
我们声明一个空列表(li
)
然后我们进入for循环,在其中我们使用每个项目填充列表,并在image_path
中填充长度。
在第4部分中,
我们开始编写csv文件。在with语句中,我们将li
中的所有数据写入了我们的文件。