【已解决】python脚本读取文件数据放入列表,出现“前导零“错误

软件和网站开发以及相关技术探讨
回复
头像
yq-ysy
论坛版主
帖子: 4451
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

【已解决】python脚本读取文件数据放入列表,出现“前导零“错误

#1

帖子 yq-ysy » 2024-01-15 23:10

我有一个输入法单字码表,格式如下:

代码: 全选

即	0	800
寻	01	800
尋	011	800
录	012	800
肃	0123	800
肅	01232	800
我现在想用python脚本读取这个码表文件,脚本如下:

代码: 全选

#!/usr/bin/python3
#-*- coding: UTF-8 -*-

import os
import sys;
import codecs;
import importlib,sys
importlib.reload(sys)

 fa=open(sys.argv[1]).readlines()           # 第一个文件六全码
LQM={}   # 六全码专用字典

for x in fa:
    xx = x.replace('\n','').split('\t')    # 去除回车号,以制表符分割
    LQM[xx[0]] = xx[1]                     # 放入六全码字典
#print (LQM)                                # 测试显示字典结果

……(以下省略)……
三年前这个脚本能正常运行的,现在不知道怎么回事,出现错误提示如下:

代码: 全选

  File "/home/abc/Documents/stroke-seq_MB-master/词库码表/核心词库(仅汉字)/单字_精简码_5379个.txt", line 2
    寻  01      800
        ^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
网上说放入列表前需要将数字转为字符串,但我试着在加str(),总不成功。
请问应该如何解决?谢谢。


————————————
读取另一个码表文件,如下:

代码: 全选

⺻	01	668
聿	01	670
彐	01	669
鄩	011212	669
彠	011214	670
尋	011214	669
寻	01124	670
出错提示变了:

代码: 全选

  File "/home/abc/Documents/stroke-seq_MB-master/词库码表/核心词库(仅汉字)/单字_六全码_20988个.txt", line 1
    ⺻  01      668
    ^
SyntaxError: invalid character '⺻' (U+2EBB)
是我的码表文件有问题引起的吗?

—— 更新 ——
感谢2楼,问题已解决,是我输人python3命令时没有加上 .py 脚本文件名,就直接跟着码表文件名了。
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: 【求助】python脚本读取文件数据放入列表,出现“前导零“错误

#2

帖子 astolia » 2024-01-16 9:29

这种错误只会出现在你直接用python3去执行那些码表文件,估计是你把

代码: 全选

./script.py /home/abc/Documents/stroke-seq_MB-master/词库码表/核心词库(仅汉字)/单字_精简码_5379个.txt
写成了

代码: 全选

python3 /home/abc/Documents/stroke-seq_MB-master/词库码表/核心词库(仅汉字)/单字_精简码_5379个.txt
头像
yq-ysy
论坛版主
帖子: 4451
注册时间: 2008-07-19 12:44
来自: 广西(桂)南宁(邕)

Re: 【求助】python脚本读取文件数据放入列表,出现“前导零“错误

#3

帖子 yq-ysy » 2024-01-16 10:24

astolia 写了: 2024-01-16 9:29 这种错误只会出现在你直接用python3去执行那些码表文件,估计是你把

代码: 全选

./script.py /home/abc/Documents/stroke-seq_MB-master/词库码表/核心词库(仅汉字)/单字_精简码_5379个.txt
写成了

代码: 全选

python3 /home/abc/Documents/stroke-seq_MB-master/词库码表/核心词库(仅汉字)/单字_精简码_5379个.txt
噢!果然是!
幸好得到有经验的师傅提示,十分感谢!
我在命令行的参数里,只想着要添加码表文件名参数,反而忘了Pyhon脚本文件这个最重要的参数。
现在加上“词组编码.py”就一切正常了。

代码: 全选

python3 词组编码.py 单字_精简码_5438个.txt
唉,做好了这输入法之后,一直用得很好,于是三年没碰Python脚本,连最最基础的命令行都忘光了……
回复