Traceback (most recent call last): File "E:\QMT\python\getdata.py", line 4, in <module> data = pd.read_csv('E:\QMT\python\program\000905.DAT', sep='delimiter', header=None, engine='python') File "E:\QMT\bin.x64\lib\site-packages\pandas\io\parsers.py", line 709, in parser_f return _read(filepath_or_buffer, kwds) File "E:\QMT\bin.x64\lib\site-packages\pandas\io\parsers.py", line 449, in _read parser = TextFileReader(filepath_or_buffer, **kwds) File "E:\QMT\bin.x64\lib\site-packages\pandas\io\parsers.py", line 818, in __init__ self._make_engine(self.engine) File "E:\QMT\bin.x64\lib\site-packages\pandas\io\parsers.py", line 1059, in _make_engine self._engine = klass(self.f, **self.options) File "E:\QMT\bin.x64\lib\site-packages\pandas\io\parsers.py", line 2074, in __init__ memory_map=self.memory_map) File "E:\QMT\bin.x64\lib\site-packages\pandas\io\common.py", line 393, in _get_handle f = open(path_or_buf, mode, errors='replace') ValueError: embedded null character
时间: 2023-06-30 21:13:24 浏览: 172
这个错误可能是由于文件中有不可见字符,例如 null 字符,导致 pandas 读取时出现了错误。你可以尝试使用其他的分隔符,例如逗号或制表符,来替代 `delimiter` 参数。如果文件中确实存在 null 字符,你需要先对文件进行处理,删除这些不可见字符,再进行文件读取。
以下是一个示例代码,使用逗号作为分隔符:
```python
import pandas as pd
# 读取dat文件
data = pd.read_csv('E:\QMT\python\program\000905.DAT', sep=',', header=None, engine='python')
# 将读取的数据写入表格
data.to_excel('output.xlsx', index=False, header=False)
```
如果文件中确实存在 null 字符,你可以使用以下代码对文件进行处理:
```python
with open('E:\QMT\python\program\000905.DAT', 'rb') as f:
content = f.read()
# 删除 null 字符
content = content.replace(b'\x00', b'')
# 将处理后的内容写回文件
with open('E:\QMT\python\program\000905.DAT', 'wb') as f:
f.write(content)
# 重新读取文件
data = pd.read_csv('E:\QMT\python\program\000905.DAT', sep='delimiter', header=None, engine='python')
```
注意,这个处理过程会直接修改文件内容,请在执行前备份文件。
阅读全文