Python 将文件夹中的所有DAT文件转换为CSV文件
我在谷歌上搜索了一下,找到了下面的脚本,将DAT文件转换成CSV文件Python 将文件夹中的所有DAT文件转换为CSV文件,python,python-3.x,Python,Python 3.x,我在谷歌上搜索了一下,找到了下面的脚本,将DAT文件转换成CSV文件 import csv import idlsave from os import listdir from os.path import isfile, join, splitext dat_folder = "C:\\Users\\ryans\\OneDrive\\Desktop\\dat\\" csv_folder = "C:\\Users\\ryans\\OneDrive\\Desktop\\csv\\" onlyf
import csv
import idlsave
from os import listdir
from os.path import isfile, join, splitext
dat_folder = "C:\\Users\\ryans\\OneDrive\\Desktop\\dat\\"
csv_folder = "C:\\Users\\ryans\\OneDrive\\Desktop\\csv\\"
onlyfilenames = [f for f in listdir(dat_folder) if isfile(join(dat_folder,f))]
for fullfilename in onlyfilenames:
file_name, file_extension = splitext(fullfilename)
if file_extension == ".DAT":
input_file = idlsave.read(dat_folder + fullfilename)
n = input_file["raw"]
with open(join(csv_folder, file_name + ".CSV"), "w", newline='') as f:
writer = csv.writer(f)
writer.writerows(n)
代码看起来可以正常工作,逻辑看起来也很合理,但当我运行它时,会收到以下错误消息:
异常:无效签名:b'10'
所有文件名和扩展名都是大写的。不确定这是否有什么不同。我在谷歌上搜索了错误,没有找到任何有用的东西。谢谢Anil\M,这帮了大忙!这是我的最终解决方案
import csv
import idlsave
from os import listdir
from os.path import isfile, join, splitext
dat_folder = "C:\\Users\\ryans\\OneDrive\\Desktop\\dat\\"
csv_folder = "C:\\Users\\ryans\\OneDrive\\Desktop\\csv\\"
onlyfilenames = [f for f in listdir(dat_folder) if isfile(join(dat_folder,f))]
for fullfilename in onlyfilenames:
file_name, file_extension = splitext(fullfilename)
if file_extension == ".DAT":
with open(join(dat_folder + fullfilename)) as f:
with open(join(csv_folder, file_name + ".CSV"), "w") as f1:
for line in f:
f1.write(line)
n
根据您的代码是原始的,或者换句话说是字节。这可能是错误的原因。在使用writer写入之前,您需要将逻辑设置到位,以将其转换为正确的数据类型(str、int等)。此外,请检查此答案此代码中唯一可能引发此错误的行是idlsave.read(…)
。该错误意味着您的.DAT
文件的格式不是idlsave
可以处理的格式。您假定所有.DAT
文件都相同。这是一个相当通用的文件扩展名。你有一个文件不是你想象的那样。