Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 sys.argv[1:]为空_Python_Python 3.x - Fatal编程技术网

Python sys.argv[1:]为空

Python sys.argv[1:]为空,python,python-3.x,Python,Python 3.x,我正在从以下链接尝试text2bin.py文件: 我不得不修改一些代码,因为它是用python 2.7编写的,但我需要3+。 无论如何,我在尝试代码时发现sys.argv[1:]当前为空 import getopt import os import struct import sys try: opts, args = getopt.getopt(sys.argv[1:], 'o:v:', ['output=', 'vocab=']) except getopt.GetoptError a

我正在从以下链接尝试text2bin.py文件:

我不得不修改一些代码,因为它是用python 2.7编写的,但我需要3+。 无论如何,我在尝试代码时发现sys.argv[1:]当前为空

import getopt
import os
import struct
import sys

try:
  opts, args = getopt.getopt(sys.argv[1:], 'o:v:', ['output=', 'vocab='])
except getopt.GetoptError as e:
    print (e, file = sys.stderr)
    sys.exit(2)
下面是我对整个模型的代码

import getopt
import os
import struct
import sys

try:
  opts, args = getopt.getopt(sys.argv[1:], 'o:v:', ['output=', 'vocab='])

except getopt.GetoptError as e:
    print (e, file = sys.stderr)
    sys.exit(2)


opt_output = 'vecs.bin'
opt_vocab = 'vocab.txt'
for o, a in opts:
  if o in ('-o', '--output'):
    opt_output = a
  if o in ('-v', '--vocab'):
    opt_vocab = a
def go(fhs):
  fmt = None
  with open(opt_vocab, 'w') as vocab_out:
    with open(opt_output, 'wb') as vecs_out:
      for lines in list(zip(fhs)):
        parts = [str(line).split() for line in lines]
        token = parts[0][0]
        if any(part[0] != token for part in parts[1:]):
          raise IOError('vector files must be aligned')

        print(token, file = vocab_out)

        vec = [sum(float(x) for x in xs) for xs in list(zip((parts)[1:]))]


        if not fmt:
          fmt = struct.Struct('%df' % len(vec))


        vecs_out.write(fmt.pack())

if args:
  fhs = [open(filename) for filename in args]
  go(fhs)
  for fh in fhs:
    fh.close()
else:
  go([sys.stdin])

为什么我得到一个空的sys.argv[1:]?另外,我从Python2.7到3.5的转换是否正确???

我不确定这是否得到了明确的回答,但听起来您无法成功地传递参数。如果使用sys.argv,则从标准输入中获取参数并将其传递给程序。我不熟悉Windows命令提示符,但在Linux中,通过使Python文件可执行,然后执行以下操作来传递参数

./text2bin.py参数1参数2。。。。使用参数执行程序


./textbin.py如何启动它?如果不传递任何参数,这是意料之中的。@kraskevich我使用了命令提示符,但仍然在运行empty@Jean-François Fabre我该如何设置参数?text2bin.py无论你想要什么parpameters会是什么?对不起,我对这个编码世界很陌生。。。参数是否类似于摄取文件?