Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 操作系统模块,尝试识别文件的路径_Python - Fatal编程技术网

Python 操作系统模块,尝试识别文件的路径

Python 操作系统模块,尝试识别文件的路径,python,Python,我构建了一个名为Assembler.py的小程序: def main(argv): temp = os.path.realpath(argv[1]) if temp.endswith(".asm"): print(temp) else: print("submit a valid file") if __name__ == "__main__": main(sys.argv) 我正在使用我创建的一些脚本运行此程序

我构建了一个名为
Assembler.py
的小程序:

 def main(argv):
     temp = os.path.realpath(argv[1])
     if temp.endswith(".asm"):
         print(temp)
     else:
         print("submit a valid file")

 if __name__ == "__main__":
     main(sys.argv)
我正在使用我创建的一些脚本运行此程序:

python Assembler.py $1
运行示例:

Assembler pong.asm

我不知道为什么
是错的。为什么我的地址不以
.asm
结尾?

您的所有代码如下:

#coding=utf-8

import os
import sys

def main(argv):
     temp = os.path.realpath(argv[1])
     if temp.endswith(".asm"):
         print(temp)
     else:
         print("submit a valid file")

if __name__ == "__main__":
     main(sys.argv)
然后,您应该直接使用python汇编程序pong.asm
。 例如:


如果
,则
没有问题。问题在于shell脚本以及您尝试运行它的方式

如果您想直接运行python代码,应该运行

python Assembler.py pong.asm
.py
扩展非常重要

如果您想编写简单的shell脚本来包装它。您可以创建名为
Assembler
的文件,其内容如下:

python Assembler.py $1
要运行该简单的shell脚本,您应该运行:

./Assembler pong.asm


其中需要
/
sh

如果
,则
没有问题。您是否忘记添加
导入操作系统
导入系统
?如果没有-脚本的行为和预期的行为是什么?当您尝试运行代码时实际会发生什么。您是否考虑过使用os.path.splitext?我正在尝试,结果是:文件“Assembler”,第1行python3 Assembler.py$1^语法错误:无效语法如果您使用python3,请删除
#coding=utf-8
./Assembler pong.asm
sh Assembler pong.asm