在Python 3中读取文件时出错
下面是我的代码,我的目标是遍历一个大的.txt文件,找到带有“stop1”参数的行,它应该在第三个槽中。然后选取整行,并将其添加到另一个文件中在Python 3中读取文件时出错,python,python-3.x,Python,Python 3.x,下面是我的代码,我的目标是遍历一个大的.txt文件,找到带有“stop1”参数的行,它应该在第三个槽中。然后选取整行,并将其添加到另一个文件中 def reading_files(): import os stop1 = "1040271" file1 = open(os.path.expanduser('~/google_transit/stop_times.txt',),'r') for row in file1: row = row.rstrip() parts
def reading_files():
import os
stop1 = "1040271"
file1 = open(os.path.expanduser('~/google_transit/stop_times.txt',),'r')
for row in file1:
row = row.rstrip()
parts = row.split(",")
if parts[3] == stop1:
file = open(os.path.expanduser('~/timetable.txt'),'a')
file.write(row)
reading_files()
我得到以下错误:
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 6461: ordinal not in range(128)
这里也有类似的帖子,答案与编码/解码有关,但我处理的文件不应该有任何奇怪的字母或类似的东西 它可能有一些。你检查过文件的内容了吗?只是想确定一下,让我们看看文件的内容。还有,这是完整的堆栈跟踪吗?或者只是其中的一部分?请提供您的问题。目前,我们无法验证您的体验。我应该将文件上载到哪里?无法将其放在pastebin或类似位置,因为它有数千行文本。如果完整堆栈跟踪指的是所有代码,那么是的,就是它@mcjoejoe0911@mcjoejoe0911不完全一样,0xc3在拉丁语1中是
Ä
,utf-8中的Ä
将是0xc3 0x83。这意味着文件的编码可能是latin1,因此应该使用encoding='latin1'
打开它,它可能有一些。你检查过文件的内容了吗?只是想确定一下,让我们看看文件的内容。还有,这是完整的堆栈跟踪吗?或者只是其中的一部分?请提供您的问题。目前,我们无法验证您的体验。我应该将文件上载到哪里?无法将其放在pastebin或类似位置,因为它有数千行文本。如果完整堆栈跟踪指的是所有代码,那么是的,就是它@mcjoejoe0911@mcjoejoe0911不完全一样,0xc3在拉丁语1中是Ä
,utf-8中的Ä
将是0xc3 0x83。这意味着文件的编码可能是拉丁文1,因此应该使用encoding='latin1'