标签: sys

Python不会读取sys.argv

    import sys

    print sys.argv[1]
Run Code Online (Sandbox Code Playgroud)

这可能看起来非常基本,但我不能让Python从命令行读取任何内容.这就是上面的代码和我输入的内容:

    myfile.py helloworld
Run Code Online (Sandbox Code Playgroud)

我得到的回报是:

    IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

它似乎对我有用,但不再适用,我尝试卸载并重新安装Python,但它仍然无法正常工作.

所以我的问题是,我做错了什么?还是我刚刚打破了Python?

谢谢你的帮助

使用:Windows 7 Python 2.7.2

python sys command-line-arguments

7
推荐指数
2
解决办法
1万
查看次数

使用一些可选的参数运行python脚本

我已经阅读了sys文档,但有些内容仍然不清楚.我在stackoverflow上寻找了一些类似的问题,但我没有找到任何有用的东西(显然任何引用都很感激!).

我想创建一个脚本 - 比如说foo.py- 我希望从3到6个参数传递:

$ python foo.py arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

在任何情况下都必须给出前3个论点; 如果没有传递任何内容,则在具有默认参数值的函数中使用最后3个参数.

问题是我该怎么做?到目前为止,我正在考虑编写类似下面的内容foo.py(这是一个简单的示例集,仅用于具体支持我的问题):

import sys

def example(credit_mom, credit_dad, debt_mom, debt_dad = 1000,
            salary = 2000, bonus = 0):
    total_gain = salary + credit_dad + credit_mom + bonus
    total_loss = debt_dad + debt_mom

    return total_gain - total_loss

if __name__ == '__main__':
    if len(sys.argv) < 4:
        sys.exit('Need at least 3 arguments. The order is as follows:\n\
            1.credit_mom;\n\
            2.credit_dad;\n\
            3.debt_mom;\n\
            4.others')
    else:
        sys.exit(example(sys.argv[1],
                         sys.argv[2],
                         sys.argv[3],
                         sys.argv[4], …
Run Code Online (Sandbox Code Playgroud)

python sys command-line-arguments argparse

7
推荐指数
2
解决办法
1万
查看次数

input()和sys.stdin有什么区别?

我是python的新手并在线尝试一些编码问题.我接受sys.sdnin很多接受输入.我想知道如何input()sys.stdin在行动不同?

python input sys

7
推荐指数
1
解决办法
3268
查看次数

从命令行调用Python类方法

所以我在Python脚本中编写了一些类,如:

#!/usr/bin/python
import sys
import csv
filepath = sys.argv[1]

class test(object):
    def __init__(self, filepath):
        self.filepath = filepath

    def method(self):
        list = []
        with open(self.filepath, "r") as table:
            reader = csv.reader(table, delimiter="\t")
            for line in reader:
                list.append[line]
Run Code Online (Sandbox Code Playgroud)

如果我从命令行调用此脚本,我怎么能调用方法?所以通常我输入:$ python test.py test_file现在我只需要知道如何访问名为"method"的类函数.

python methods class sys

7
推荐指数
1
解决办法
2万
查看次数

如何从db中删除所有表?无法从sys.tables中删除

如何以任何方式执行此查询:

delete from sys.tables where is_ms_shipped = 0
Run Code Online (Sandbox Code Playgroud)

发生了什么,我执行了一个非常大的查询,我忘了把USE指令放在它上面,现在我在我的主数据库上有一个数以万计的表,并且不想一个一个地删除它们.

更新:这是一个全新的数据库,所以我不必关心任何以前的数据,我想要实现的最终结果是将主数据库重置为工厂出货.

sql-server adhoc sys sql-server-2008 sql-server-2008r2-express

6
推荐指数
2
解决办法
2万
查看次数

为什么方法sys.exit(),exit(),提升SystemExit不起作用?

我需要一个替代方法来杀死线程函数内部的python脚本.我的意图是当客户端输入0时杀死服务器...这是不行的,因为线程还没有被终止?这是我的代码:

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
print 'Socket created'

try:
    socket.bind((HOST, PORT))
except socket.error, message:
    print 'Bind statement failed. ERROR: ' + str(message[0]) + ' Message: ' +    message[1]
    sys.exit()

print 'Socket Binding Successful'

socket.listen(10)
print 'Socket is currently listening'


def clientThread(connection):
    while 1:
        data = connect.recv(1024)
        try:
            quit = int(data)
        except:
            quit = 3
        if quit == 0:
            print 'Closing the connection and socket...'
            connect.close()
            socket.close()
            sys.exit(); //Alternative needed here...
            break
        reply = 'Ok....' + data
        if not data:
            break …
Run Code Online (Sandbox Code Playgroud)

python sockets multithreading exit sys

6
推荐指数
1
解决办法
1万
查看次数

sys.excepthook为什么不起作用?

sys.excepthook如果我尝试执行此代码,为什么不调用该函数?

import sys;
def MyExcepthook(ex_cls, ex, tb):

    print("Oops! There's an Error.\n");

    a=open("./ERR.txt","w"); #Fixed as suggested by unutbu BUT the problem is the same!
    a.write("Oops! There's an Error.\n");
    a.close();

sys.excepthook = MyExcepthook;

def main():
    print(1/0);

if (__name__=="__main__"):
    main();
Run Code Online (Sandbox Code Playgroud)

输出:

Traceback (most recent call last):
  File "C:\Users\Path\to\my\python\file.py", line 13, in <module>
    main();
  File "C:\Users\Path\to\my\python\file.py", line 10, in main
    print(1/0);
ZeroDivisionError: division by zero
Run Code Online (Sandbox Code Playgroud)

预期输出(按print):

Oops! There's an Error.
Run Code Online (Sandbox Code Playgroud)

Err.txt应通过创建一个新文件(open

print函数不显示文本并且未创建文件,因为sys.excepthook未调用该函数-为什么?

-> …

python sys

6
推荐指数
1
解决办法
2668
查看次数

sys.exit(app.exec_()) 和 app.exec_() 之间的区别

我正在使用 PySide 和 PyQt 进行 GUI 开发。我一直在使用这些代码来运行 GUI 应用程序:

app = QApplication(sys.argv)
ex = MyWin()
ex.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

偶然发现如果我替换sys.exit(app.exec_())为 only app.exec_(),程序仍然可以正常运行并且可以正确退出。那么这两者有什么区别呢?我有理由使用sys.exit(app.exec_())吗?

python pyqt sys pyside

6
推荐指数
1
解决办法
4924
查看次数

sys.executable 如何确定解释器路径?

我已经用自制软件在 mac 上安装了 python。一些工具(例如 pipenv)有一些麻烦,因为它们尝试写入/lib/python3.7/site-packages/,在 mac 下是不允许的。经过一番调查,我发现他们启动了一个新的python解释器,其中发现sys.executable与自制软件安装的python路径实际上不一致。

$ which python
/usr/local/bin/python
$ python -c "import sys; print(sys.executable)"
/usr/local/opt/python/bin/python3.7
Run Code Online (Sandbox Code Playgroud)

我希望这些路径指向同一个二进制文件,为什么不是这样?我怎样才能控制sys.executable

python macos homebrew sys pipenv

6
推荐指数
1
解决办法
2844
查看次数

jupyter 中的 sys.path 和 sys.executable 不正确,但应用的修复不起作用

我已将 jupyter 配置为从远程计算机使用,并在初始 anaconda 设置时为其设置密码。然后解决这个问题后,我又陷入了另一个问题。在jupyter中不正确sys.pathsys.executable但在pythonipython正确。请参阅下面的详细信息。Anaconda3 已为所有用户安装,并且我正在为我的程序使用一个环境。/opt/anaconda3zud

背景

解决上述问题后,我尝试import igraphjupyter中进行操作,但结果ModuleNotFoundError如下:

import igraph
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-2-73ffca960e68> in <module>
----> 1 import igraph

ModuleNotFoundError: No module named 'igraph'
Run Code Online (Sandbox Code Playgroud)

然后我很快使用我的环境检查了以下详细信息zud,这些详细信息是正确的。

(zud) zuddler@silp252-dl360:~$ which python
/home/zuddler/.conda/envs/zud/bin/python
(zud) zuddler@silp252-dl360:~$ which ipython
/home/zuddler/.conda/envs/zud/bin/ipython
(zud) zuddler@silp252-dl360:~$ which jupyter
/home/zuddler/.conda/envs/zud/bin/jupyter
(zud) zuddler@silp252-dl360:~$ which conda
/opt/anaconda3/bin/conda

(zud) zuddler@silp252-dl360:~$ conda env list
# …
Run Code Online (Sandbox Code Playgroud)

python ipython sys jupyter jupyter-notebook

6
推荐指数
1
解决办法
3061
查看次数