我正在从网站下载文件,我需要保存原始文件,然后打开它,然后将文件下载的URL和下载日期添加到文件中,然后将文件保存到其他文件。目录
我用这个答案来修改csv:how to Add New column in beginning of CSV file by Python
但是在调用write()函数之前,我很难将文件重定向到另一个目录。
编写文件然后移动文件是最好的答案,还是有办法将文件写入open()函数中的不同目录?
if fileName in fileList:
print "already got file "+ fileName
else:
# download the file
urllib.urlretrieve(csvUrl, os.path.basename(fileName))
#print "Saving to 1_Downloaded "+ fileName
# open the file and then add the extra columns
with open(fileName, 'rb') as inf, open("out_"+fileName, 'wb') as outf:
csvreader = csv.DictReader(inf)
# add column names to beginning
fieldnames = ['url_source','downloaded_at'] + csvreader.fieldnames
csvwriter = csv.DictWriter(outf, fieldnames)
csvwriter.writeheader()
for node, row in enumerate(csvreader, 1):
csvwriter.writerow(dict(row, url_source=csvUrl, downloaded_at=today))
答案 0 :(得分:0)
答案 1 :(得分:0)
没有必要重建文件,尝试使用时间模块为文件名创建时间戳字符串,并使用os.rename移动文件。
示例 - 这只是将文件移动到指定位置:
os.rename(' filename.csv'' NEW_DIR / filename.csv&#39)
希望这有帮助。
答案 2 :(得分:0)
最后使用shutil进行了一个额外的例程:
# move and rename the 'out_' files to the right dir
source = os.listdir(downloaded)
for files in source:
if files.startswith('out_'):
newName = files.replace('out_','')
newPath = renamed+'/'+newName
shutil.move(files,newPath)