我有一个python(pandas)脚本,它将csv文件读入数据帧,编辑它们,并使它们成为新的csv(输出):
import pandas as pd
df = pd.read_csv(r'\filename.csv', sep=',')
# I skipped over the dataframe edits
try:
df.to_csv(r'outputfilename', sep='\t', encoding='utf-8')
except IOError as e:
print('Could not make Excel file' % e)`
我想一次在多个csv文件上使用它并获得多个输出(csv' s):
我试过了:
from tkinter.filedialog import askopenfilename
filename = askopenfilename()
df = pd.read_csv(filename, sep=',')
...
它有效(给我一个选择窗口),但我只能选择一个文件
答案 0 :(得分:1)
如果一个接一个地执行而不是一次完成所有文件就足够了,请查看glob模块:
<强> 1。创建目标目录中的文件列表
target_directory = r'Path/to/your/dir'
file_list = glob.glob(target_directory + "/*.csv")
# Include slash or it will search in the wrong directory!
<强> 2。循环浏览列表中的文件并执行您的魔法
for file in file_list: # Loop files
df_result = your_function(file) # Put your logic into a separate function
new_filename = file.replace('.csv', '_processed.csv')
df_result.to_csv(new_filename, index = False)
答案 1 :(得分:0)
from tkinter.filedialog import askopenfilename
filename = askopenfilename()
在此代码中,您说'askopenfilename&#39;那就是打开一个文件,你应该打开多个文件,你应该尝试下面的代码
import Tkinter,tkFileDialog
dir = Tkinter.Tk()
mul_file = tkFileDialog.askopenfilenames(parent=dir,title='Choose a
multiple file')
&#39; mul_file&#39;将是元组。如果需要,可以通过
将其更改为列表mul_file=list(mul_file)
这会在循环中的list.iterate列表中提供所有选择的文件并在其中执行csv操作