Python-从文本文件中的文件路径修改CSV文件

Python-从文本文件中的文件路径修改CSV文件,python,csv,copy,pydev,Python,Csv,Copy,Pydev,我正在尝试编写一个简单的python程序(在EclipseJuno中使用Pydev)来加载多个.CSV文件,以便通过CSV进行复制和重新输出。(最终,“复制”功能将被替换为选择某些列,然后重新输出csv文件) 到目前为止,我已经有了一个程序来上传一个CSV文件,并通过保存对话框将其输出到用户指定的位置(现在只需复制文件) 弹出一个对话框,要求选择文件(多选有效),但我不确定如何解释/解析多个csv输入文件,并将其静态保存到计算机上的指定位置(C:/) 下面是程序任务的一个简单摘要: 输入CSV文

我正在尝试编写一个简单的python程序(在EclipseJuno中使用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")
状态对话框

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")

在不确切了解您要做什么的情况下,您可能会尝试以下操作:

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()

是否要将所有文件复制到一个位置,还是要为每个选定的文件弹出一个对话框?似乎您可能需要迭代文件名并对每个…执行某些操作。Id要将所有选定的文件复制到C:/temp文件夹中的一个位置。我不知道如何解析输入对话框中的多个选择。正如我所解释的,
askopenfilenames()
似乎会返回一个文件名列表。您可以迭代这些文件名,如我的示例
中fin in filename:
所示。在每次迭代中,
fin
将包含一个文件名。