Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python排序函数在windows上似乎不起作用_Python_Sorting - Fatal编程技术网

python排序函数在windows上似乎不起作用

python排序函数在windows上似乎不起作用,python,sorting,Python,Sorting,我使用Python3对csv文件进行排序,代码如下。它在MAC电脑上运行得很好,但在Windows(real或Fusion)上我得到了这个例外。有人看到这个或有什么建议吗 Exception in Tkinter callback Traceback (most recent call last): File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__ return self.func(*args) File

我使用Python3对csv文件进行排序,代码如下。它在MAC电脑上运行得很好,但在Windows(real或Fusion)上我得到了这个例外。有人看到这个或有什么建议吗

Exception in Tkinter callback Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
    return self.func(*args)
File "Z:\bin\FDTSEfiles\HrsWonVal.py", line 470, in <lambda>
    Button(newOrExisting, text="OK", command=lambda: getnewOrExisting_File(U_cmd.get())).grid(row=5, column=1)
File "Z:\bin\FDTSEfiles\HrsWonVal.py", line 466, in getnewOrExisting_File
    reverseOrderAndFilterFile(existingFilePath)
File "Z:\bin\FDTSEfiles\HrsWonVal.py", line 510, in reverseOrderAndFilterFile
    sortedlist = sorted(data, key=operator.itemgetter(3))

# 3 specifies the 4th column - Date IndexError: list index out of range

sorted
在任何平台上都可以正常工作。回溯会准确地告诉您错误发生的位置,很明显,这与您的数据不是您认为应该是的数据(或不是csv模块解释为的数据)有关-分隔符错误或源文件的列数少于四列

sorted
在任何平台上都可以正常工作。回溯会准确地告诉您错误发生的位置,很明显,这与您的数据不是您认为应该是的数据(或不是csv模块解释为的数据)有关-分隔符错误或源文件的列数少于四列

sorted
在任何平台上都可以正常工作。回溯会准确地告诉您错误发生的位置,很明显,这与您的数据不是您认为应该是的数据(或不是csv模块解释为的数据)有关-分隔符错误或源文件的列数少于四列

sorted
在任何平台上都可以正常工作。回溯会准确地告诉您错误发生的位置,很明显,这与您的数据不是您认为应该是的数据(或不是csv模块解释为的数据)有关-分隔符错误或源文件的列数少于四列

csv模块中的脚注:

如果未指定
newline='
,则嵌入换行符 内部带引号的字段将无法正确解释,请继续 将添加在写入额外
\r
时使用
\r\n
行标记的平台。 由于csv模块 执行自己的(通用)换行处理


Windows恰好是一个(…该)平台,它使用
\r\n
作为行尾。这就是为什么您会获得特定于平台的行为;通过在
csv
模块中指定
newline='
open

脚注来消除它:

如果未指定
newline='
,则嵌入换行符 内部带引号的字段将无法正确解释,请继续 将添加在写入额外
\r
时使用
\r\n
行标记的平台。 由于csv模块 执行自己的(通用)换行处理


Windows恰好是一个(…该)平台,它使用
\r\n
作为行尾。这就是为什么您会获得特定于平台的行为;通过在
csv
模块中指定
newline='
open

脚注来消除它:

如果未指定
newline='
,则嵌入换行符 内部带引号的字段将无法正确解释,请继续 将添加在写入额外
\r
时使用
\r\n
行标记的平台。 由于csv模块 执行自己的(通用)换行处理


Windows恰好是一个(…该)平台,它使用
\r\n
作为行尾。这就是为什么您会获得特定于平台的行为;通过在
csv
模块中指定
newline='
open

脚注来消除它:

如果未指定
newline='
,则嵌入换行符 内部带引号的字段将无法正确解释,请继续 将添加在写入额外
\r
时使用
\r\n
行标记的平台。 由于csv模块 执行自己的(通用)换行处理



Windows恰好是一个(…该)平台,它使用
\r\n
作为行尾。这就是为什么您会获得特定于平台的行为;通过指定
newline='
open

您的CSV看起来像什么来摆脱它?您似乎正在尝试访问一个不存在的列。将csv文件的
newline='
传递到
open()
。您的csv看起来像什么?您似乎正在尝试访问一个不存在的列。将csv文件的
newline='
传递到
open()
。您的csv看起来像什么?您似乎正在尝试访问一个不存在的列。将csv文件的
newline='
传递到
open()
。您的csv看起来像什么?您似乎试图访问一个不存在的列。请将csv文件的
newline='
传递到
open()
。谢谢您的建议。尝试使用换行符=“”但没有成功。data=csv.reader(打开(reverseAndFilteredPathFileName,换行符=“”),分隔符=‘,’,引号=‘’)。数据文件包含正确的列数。它在MAC上运行良好。然后使用您自己的键函数代替itemgetter来诊断获取索引器的原因。当您编写自己的键函数时,请打印出值,以便知道CSV文件中的哪一行导致了问题。如果是这样的话,您可能会有更好的想法s额外的换行符或列太少。最终发现了问题,正如您所说的-换行符=''只是花了我一段时间才找到有问题的打开项。谢谢!谢谢您的建议。尝试了换行符='',但没有成功。data=csv.reader(打开(reverseAndFilteredPathFileName,换行符=''),分隔符='',引号='')。数据文件包含正确数量的列。它可以在MAC上完美地工作。然后使用您自己的键函数代替itemgetter来诊断为什么会得到索引器。在编写自己的键函数时,请打印出值,以便知道CSV文件中的哪一行导致了问题。如果是额外的换行或列太少,这可能会给你一个更好的主意
data = csv.reader(open(reverseAndFilteredPathFileName),delimiter=',')
sortedlist = sorted(data, key=operator.itemgetter(3))   
with open(reverseAndFilteredPathFileName, "w") as f:
    fileWriter = csv.writer(f, delimiter=',')
    for row in sortedlist:
        fileWriter.writerow(row)
f.close()