Python:如何在Python中对现有csv文件进行排序

Python:如何在Python中对现有csv文件进行排序,python,csv,Python,Csv,我有大约200个csv文件,它们的列数相同:A、B、C、D、E。我想按B列和A列对它们进行排序。用Python可以做到这一点吗 csv是标准文本文件(不是Excel文件)。Python当然可以处理这些文件。有一个名为csv的库,专为此类工作而设计: 假设文件大小是可管理的,您应该能够简单地将它们全部加载到内存中,然后进行排序 到目前为止您尝试了什么?csv是一个标准文本文件(不是Excel文件)。Python当然可以处理这些文件。有一个名为csv的库,专为此类工作而设计: 假设文件大小是可管理的

我有大约200个csv文件,它们的列数相同:A、B、C、D、E。我想按B列和A列对它们进行排序。用Python可以做到这一点吗

csv是标准文本文件(不是Excel文件)。Python当然可以处理这些文件。有一个名为
csv
的库,专为此类工作而设计:

假设文件大小是可管理的,您应该能够简单地将它们全部加载到内存中,然后进行排序


到目前为止您尝试了什么?

csv是一个标准文本文件(不是Excel文件)。Python当然可以处理这些文件。有一个名为
csv
的库,专为此类工作而设计:

假设文件大小是可管理的,您应该能够简单地将它们全部加载到内存中,然后进行排序


到目前为止您尝试了什么?

csv是一个标准文本文件(不是Excel文件)。Python当然可以处理这些文件。有一个名为
csv
的库,专为此类工作而设计:

假设文件大小是可管理的,您应该能够简单地将它们全部加载到内存中,然后进行排序


到目前为止您尝试了什么?

csv是一个标准文本文件(不是Excel文件)。Python当然可以处理这些文件。有一个名为
csv
的库,专为此类工作而设计:

假设文件大小是可管理的,您应该能够简单地将它们全部加载到内存中,然后进行排序


到目前为止您尝试了什么?

我为csv文件创建了一个排序程序,该程序输出一个带有两个键的新排序csv文件。要排序,请先按辅助键排序,然后按主键排序

要对多个文件进行排序,请遍历所有输入文件,创建基本统计数据数组。 然后对结果进行排序

我只有一个输入文件,所以我不必这样做。这是我为一个文件所做的。你可以改变我填充的位置,使之成为输入循环的结果

ifile = open('file.csv', 'rb')
infile = csv.DictReader(ifile)
infields = infile.fieldnames
try:
  # This assumes that the first row is data
  sortedlist = sorted(infile, key = lambda d: float(d['statistic2'], reverse =dir) # dir is True or False
except ValueError:
  # Go back and skip header 
  ifile.seek(0)
  ifile.next()
  sortedlist = sorted(infile, key = lambda d: float(d['statistic2'], reverse =dir) # dir is True or False
# Now do the primary key.
  sortedlist.sort(key = lambda d: float(d['statistic1'], reverse =dir) # dir is True or False

ifile.close()

现在使用csv.DictWriter打开输出文件,写入标题并从sortedlist输出数据。

我为csv文件创建了一个排序程序,该程序使用两个键输出一个新的排序csv文件。要排序,请先按辅助键排序,然后按主键排序

要对多个文件进行排序,请遍历所有输入文件,创建基本统计数据数组。 然后对结果进行排序

我只有一个输入文件,所以我不必这样做。这是我为一个文件所做的。你可以改变我填充的位置,使之成为输入循环的结果

ifile = open('file.csv', 'rb')
infile = csv.DictReader(ifile)
infields = infile.fieldnames
try:
  # This assumes that the first row is data
  sortedlist = sorted(infile, key = lambda d: float(d['statistic2'], reverse =dir) # dir is True or False
except ValueError:
  # Go back and skip header 
  ifile.seek(0)
  ifile.next()
  sortedlist = sorted(infile, key = lambda d: float(d['statistic2'], reverse =dir) # dir is True or False
# Now do the primary key.
  sortedlist.sort(key = lambda d: float(d['statistic1'], reverse =dir) # dir is True or False

ifile.close()

现在使用csv.DictWriter打开输出文件,写入标题并从sortedlist输出数据。

我为csv文件创建了一个排序程序,该程序使用两个键输出一个新的排序csv文件。要排序,请先按辅助键排序,然后按主键排序

要对多个文件进行排序,请遍历所有输入文件,创建基本统计数据数组。 然后对结果进行排序

我只有一个输入文件,所以我不必这样做。这是我为一个文件所做的。你可以改变我填充的位置,使之成为输入循环的结果

ifile = open('file.csv', 'rb')
infile = csv.DictReader(ifile)
infields = infile.fieldnames
try:
  # This assumes that the first row is data
  sortedlist = sorted(infile, key = lambda d: float(d['statistic2'], reverse =dir) # dir is True or False
except ValueError:
  # Go back and skip header 
  ifile.seek(0)
  ifile.next()
  sortedlist = sorted(infile, key = lambda d: float(d['statistic2'], reverse =dir) # dir is True or False
# Now do the primary key.
  sortedlist.sort(key = lambda d: float(d['statistic1'], reverse =dir) # dir is True or False

ifile.close()

现在使用csv.DictWriter打开输出文件,写入标题并从sortedlist输出数据。

我为csv文件创建了一个排序程序,该程序使用两个键输出一个新的排序csv文件。要排序,请先按辅助键排序,然后按主键排序

要对多个文件进行排序,请遍历所有输入文件,创建基本统计数据数组。 然后对结果进行排序

我只有一个输入文件,所以我不必这样做。这是我为一个文件所做的。你可以改变我填充的位置,使之成为输入循环的结果

ifile = open('file.csv', 'rb')
infile = csv.DictReader(ifile)
infields = infile.fieldnames
try:
  # This assumes that the first row is data
  sortedlist = sorted(infile, key = lambda d: float(d['statistic2'], reverse =dir) # dir is True or False
except ValueError:
  # Go back and skip header 
  ifile.seek(0)
  ifile.next()
  sortedlist = sorted(infile, key = lambda d: float(d['statistic2'], reverse =dir) # dir is True or False
# Now do the primary key.
  sortedlist.sort(key = lambda d: float(d['statistic1'], reverse =dir) # dir is True or False

ifile.close()


现在使用csv.DictWriter打开输出文件,写入标题并从sortedlist输出数据。

是的,这是可能的。您是否尝试在该网站上搜索类似/相同的问题?有很多解决方案。我在你的帖子上做了一个编辑,将excel替换为csv,因为你似乎不使用excel文件,而是使用csv文件。对吗?@beroe,我希望你能给我一个指向相同问题的链接。@Lynch,我使用python csv库创建了这些文件,并使用Excel读取它们。谢谢大家,问题解决了。请看我在第一个答案下的评论是的,这是可能的。您是否尝试在该网站上搜索类似/相同的问题?有很多解决方案。我在你的帖子上做了一个编辑,将excel替换为csv,因为你似乎不使用excel文件,而是使用csv文件。对吗?@beroe,我希望你能给我一个指向相同问题的链接。@Lynch,我使用python csv库创建了这些文件,并使用Excel读取它们。谢谢大家,问题解决了。请看我在第一个答案下的评论是的,这是可能的。您是否尝试在该网站上搜索类似/相同的问题?有很多解决方案。我在你的帖子上做了一个编辑,将excel替换为csv,因为你似乎不使用excel文件,而是使用csv文件。对吗?@beroe,我希望你能给我一个指向相同问题的链接。@Lynch,我使用python csv库创建了这些文件,并使用Excel读取它们。谢谢大家,问题解决了。请看我在第一个答案下的评论是的,这是可能的。您是否尝试在该网站上搜索类似/相同的问题?有很多解决方案。我在你的帖子上做了一个编辑,将excel替换为csv,因为你似乎不使用excel文件,而是使用csv文件。对吗?@beroe,我希望你能给我一个指向相同问题的链接。@Lynch,我使用python csv库创建了这些文件,并使用Excel读取它们。谢谢大家,问题解决了。请看我在第一页下面的评论answer@Navid我编辑了答案以确保正确。我不小心做了一次复制粘贴,第二次排序时出现了错误。@Navid Wu我将答案编辑为正确答案。我不小心做了一个复制粘贴,这对seco来说是错误的