当前位置:网站首页>gbk编解码器无法解码的问题,有可能出题出在文件名上

gbk编解码器无法解码的问题,有可能出题出在文件名上

2022-07-23 05:39:00 py617

今天运行的一段程序,以前一直没问题,今天却一直报错:

我的程序里应用到读取csv文件,于是用到了下面这一段程序

dfz2 = pd.read_csv(filepath_or_buffer=input_data_path2 + "//" + "fang_10_" + fi,  sep=",",encoding="gbk",  )  # 不同表格有差别                

因为其中用到了encoding="gbk"的定义,与之对应的,我在程序第一段加入

 # -*- coding:utf-8 -*-

因为加有上面这一段,一直没有出问题。今天却例外的出问题了。

经过不断反复对比和测试 ,最后发现原来是我读取的文件名,用到了fang_10_,这里有了下划线,且是两个下划线,就读不成功了。我把文件名里的下划线改剩下一个后,就可以成功读取了。有可能是因为,两条下划线是某种内在固定格式,使用时系统冲突了。总之,改成剩下一条下划线后,程序可以运行了。

今晚发现按上面的思路还是不行。。。。。琢磨了一个晚上,最后发现,我问题还没发现出在哪里,就开始埋头修改文件名。。。。。最后才发现,上面说的都错了。真正的错误是因为,我自己的表格错了。

 也不知道怎么就把文件处理成这个样子!!

发现问题比处理问题要重要得多。。。只要没有达到预期肯定是过程中有哪个环节出错了。。。

ps:今天整理文件时用到批量修改文件名的简单方法,很好用,顺便记录下来。

一、在需要批量修改的文件夹里,新建一个记事本txt文件。打开输入代码:

替换的代码如下:

@Echo Off&SetLocal ENABLEDELAYEDEXPANSION

FOR %%a in (*) do (

set "name=%%a"

set "name=!name:需要被替换的=替换的结果!"

ren "%%a" "!name!"

)

exit

删除的代码如下:

@Echo Off&SetLocal ENABLEDELAYEDEXPANSION

FOR %%a in (*) do (

set "name=%%a"

set "name=!name:需要删除的=!"

ren "%%a" "!name!"

)

exit

二、将记事本.txt的后缀修改成.bat。

三、双击运行。然后等程序运行好,就能看到文件夹里面的文件,都按要求修改好了。

原网站

版权声明
本文为[py617]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_52551404/article/details/125623247