如果您的输入文件中确实包含带有Python语法
b前缀的字符串,则解决该问题的一种方法(即使它并不是包含csv数据的真正有效格式)也可以使用
ast.literal_eval提到的Python函数@Ryan,尽管我会在方式略有不同,如下所示。
这将提供一种安全的方法来解析文件中以前缀
b指示为字节字符串的字符串。其余的将不变地传递。
import astimport csvdef _parse_bytes(field): """ Convert string represented in Python byte-string literal b'' syntax into a depred character string - otherwise return it unchanged. """ result = field try: result = ast.literal_eval(field) finally: return result.depre() if isinstance(result, bytes) else fielddef my_csv_reader(filename, /, **kwargs): with open(filename, 'rt', newline='') as file: for row in csv.reader(file, **kwargs): yield [_parse_bytes(field) for field in row]reader = my_csv_reader('bytes_data.csv', delimiter=','):for row in reader: print(row)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)