【发布时间】:2016-07-03 22:53:42
【问题描述】:
我一直在寻找一段时间,但我没有任何运气。这是我的问题:我有一个网络驱动器,里面装满了带有 CSV 子文件夹的文件夹。最终,这些 csv 需要导入到数据库中。基于结构,我希望从每一行中删除一行(每张表的第二行),并将其附加到一张新表中,以创建自己的表和表。不久前,我发现 Python 可以实现这一点。但是,我遇到了一些问题。我一步一步地做这件事,所以我不会因为不知道从哪里开始而感到不知所措。问题是我找到了所有的 CSV,但我无法打开每个 CSV 来读取任何行来写入文件。我一直在使用其他一些线程作为资源,但遇到了 IOError: [Errno 13] 权限被拒绝:“。” 来这里之前,我试图用尽所有选择,但现在我的时间不多了。我非常感谢您的帮助。
这是代码,从我玩了一段时间的 cmets 可以看出:
#!/usr/bin/python
import os
import csv
import sys
#output_file = sys.argv[1]
input_path = sys.argv[1] #I would pass a '.' here for current directory on the drive
#output_file = sys.argv[2]
def doWhatYouWant(line):
print line
return line
#let the function return, not only print, to get the value for use as below
#filewriter = csv.writer(open(output_file,'wb'))
#This recursively opens opens .csv files and opens them
directory = os.path.join(input_path)
for root,dirs,files in os.walk(directory):
for file in files:
if file.endswith(".csv"):
f=open(input_path, 'r')
lines= f.readlines()
f.close()
#reader =csv.DictReader(f,delimiter=',')
# writer = open("testsummary.txt",'wb')
# writer = csv.writer(writer, delimiter=',')
f=open(file.txt,'w')
#for row in reader:
# writer.writerow(row[2])
# print(row[1])
newline=doWhatYouWant(line)
f.write(newline)
f.close()
#f.close()
#print file
提前感谢大家的帮助。
【问题讨论】:
-
你为什么有
file.txt?你的意思是'file.txt'?
标签: python loops csv recursion merge