python - z/OS 大型机上 USS 中的 Python 代码 - 方括号无法识别
问题描述
我正在尝试在 z/OS Mainframe USS 上执行以下 python 代码。我面临的问题是,当我运行代码时,我收到以下错误消息。我的代码中似乎无法识别方括号。
File "/u/q123/python/pyfilr.py", line 11
print(lineï..0:4ï..)
¬
SyntaxError: invalid syntax
下面是我的代码:
#!/usr/local/bin/rocket/python/python27
# -*- coding: utf-8 -*-
import os
import json
def main():
curpath = os.path.abspath(os.curdir)
inp_file_path = os.path.join(curpath, os.path.join("python","inp.txt")
file1 = open(inp_file_path,"r")
line = file1.readline().strip()
while line!="":
print(line[0:4])
jsonstr = json.dumps(line)
line = file1.readline().strip()
print(jsonstr)
file1.close()
if __name__ == "__main__":
main()
如果我在我的代码中删除第二行“# - - coding: utf-8 - -”,那么它会因以下错误消息而出错。
SyntaxError: Non-ASCII character '\xdd' in file /u/q123/python/pyfilr.py on line 11, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
我不确定如何解决该错误。我正在使用python 2.7。
你能建议一个解决这个问题的方法,以便我可以在我的代码中使用方括号吗?
解决方案
Ascii 非常深入地内置于 Python 中,这是 z/OS 上的一个问题,它本机支持 EBCDIC。您可以使用 chtag 命令告诉 z/OS 将文件视为特定编码。要查看文件是否已被标记,您可以发出命令
ls -T <filename>
要标记文件,您可以发出命令
chtag -tvc UTF-8 <filename>
我建议删除文件,触摸一个空文件,对其进行标记,然后将内容放入其中,而不仅仅是标记文件。
推荐阅读
- javascript - 这是 3D 图形吗?还有更多信息吗?
- javascript - 更改three.js CylinderGeometry 顶部(或底部)半径问题
- nginx - Q: 如何用 ingress-nginx 重写多条路径中的单条路径
- java - 二进制类的 Swagger 注释?
- javascript - Parse.Cloud.httpRequest 使用 POST 方法返回“未定义”而不是响应
- javascript - Javascript 严格匹配和验证正则表达式
- react-native - 对于 Expo 裸工作流,`app.json` 的目的是什么?
- oracle - 将查询结果存储在表中
- python - 按白天和黑夜分开值
- react-native - 反应将打开我的应用程序的本机后台任务。有可能吗?