0

我正在尝试编写一个简单的 python 程序(在 Eclipse Juno 中使用 Pydev)来加载多个 .CSV 文件以通过 CSV 复制和重新输出。(最终“复制”功能将被替换为选择某些列然后重新输出 csv 文件)

到目前为止,我已经让程序上传单个 CSV 文件并将其输出到用户通过保存对话框指定的位置(现在只复制文件)。

弹出一个对话框并要求选择文件(多选有效),但我不确定如何解释/解析并将多个 csv 输入文件静态保存到我计算机上的指定位置(C:/)。

这是程序任务的简单运行:

输入 CSV 文件 -> 复制 -> 将 CSV 文件输出到计算机上的静态位置

我将在这篇文章中包含我的代码,

任何帮助是极大的赞赏!!:-)

代码:

上传文件

from Tkinter import Tk
from tkFileDialog import askopenfilenames

Tk().withdraw() 
filenames = askopenfilenames() 
print(filenames)

文件复制/操作

import csv
import tkFileDialog

ifile = open(filenames)
reader = csv.reader(ifile)

另存为对话框

ofile = tkFileDialog.asksaveasfilename()
print filenames 

writer = csv.writer(open(ofile, 'wb'))

for row in reader:
writer.writerow(row)

状态对话框

import tkMessageBox
tkMessageBox.showinfo(title="Conversion Successful", message="CSV File has been successfully converted")
4

1 回答 1

0

在不确切知道您要做什么的情况下,您可能会尝试这样的事情:

from Tkinter import Tk
from tkFileDialog import askopenfilenames  
Tk().withdraw() 

filenames = askopenfilenames() 

# askopenfilenames() returns a list of filenames. Loop through them one at a time
for fin in filenames:
  ifile = open(fin)
  reader = csv.reader(ifile)

  # For each file, ask where to save it, then write it out.
  ofile = tkFileDialog.asksaveasfilename()
  writer = csv.writer(open(ofile, 'wb'))
  for row in reader:
    # Whatever you modify probably goes here.
    writer.writerow(row)

    tkMessageBox.showinfo(title="Conversion Successful", message="CSV File '{0}' has been successfully converted and was written to '{1}'".format(fin,ofile)

  ifile.close()
于 2013-05-20T21:10:06.443 回答