小编Sam*_*uel的帖子

"预期类型'Union [str,bytearray]'得到'int'而不是写入方法中的警告

我的脚本使用预先生成的数据模式按块写入文件块:

#  Data pattern generator    
def get_random_chunk_pattern():
            return ''.join(random.choice(ascii_uppercase + digits + ascii_lowercase) for _ in range(8))
Run Code Online (Sandbox Code Playgroud)

....

# DedupChunk class CTOR:
class DedupChunk:
    def __init__(self, chunk_size, chunk_pattern, chunk_position=0, state=DedupChunkStates.PENDING):
        self._chunk_size = chunk_size  # chunk size in bytes
        self._chunk_pattern = chunk_pattern
        self._chunk_position = chunk_position
        self._state = state
        self.mapping = None

    @property
    def size(self):
        return self._chunk_size

    @property
    def pattern(self):
        return self._chunk_pattern

    @property
    def position(self):
        return self._chunk_position

    @property
    def state(self):
        return self._state
Run Code Online (Sandbox Code Playgroud)

....

# Here Chunk object is being initialized (inside other …
Run Code Online (Sandbox Code Playgroud)

python pycharm python-2.7

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

“过时的文件句柄”错误,当进程尝试读取文件时,该其他进程已被删除

我正在编写压力测试套件,用于通过NFS测试分布式文件系统。

在某些情况下,当某个进程删除文件而其他进程试图从中读取文件时,我收到“陈旧文件句柄”错误(116)。

在这种加薪条件下,这种错误是可以预期的并且可以接受的吗?

测试工作如下:

  1. 开始数量x客户端计算机数量
  2. 每个客户端计算机运行y个进程
  3. 每个进程都可以执行任何文件操作,如stat / read / delete / open
  4. 提及的文件操作是标准的python方法-os.stat / read / os.remove / open
  5. 所有文件均为空0字节数据

文件存在,如成功stat操作所示:

controller_debug.log.2:2016-10-26 15:02:30,156; INFO-[LG-E27A-LNX:0xa]:已完成640522b4d94c453ea545cb86568320ca,结果:成功| stat | / JUyw481MfvsBHOm1KQu7sHRB6ffAXKjwIATlsXmOgWh8XKQaIrPbxLgAo7sucdAM / o6V266xE8bTaUGzk8YDMfDAJp0YIfbT4fIK1oZ2R20tRX3xFCvjIS 数据:{} | 2016/10/26 15:02:30.156

0x1客户端上的进程CLIENT-A已成功删除:

controller_debug.log.2:2016-10-26 15:02:30,164; INFO-[CLIENT-A:0x1]:已完成5f5dfe6a06de495f851745a78857eec1,结果:成功| 删除| / JUyw481MfvsBHOm1KQu7sHRB6ffAXKjwIATlsXmOgWh8XKQaIrPbxLgAo7sucdAM / o6V266xE8bTaUGzk8YDMfDAJp0YIfbT4fIK1oZ2R20tRX3xFCvjIS 数据:{} | 2016/10/26 15:02:30.161

3毫秒后,由于“陈旧的文件句柄” 0xb,客户端上的进程CLIENT-B“读取”操作失败

controller_debug.log.2:2016-10-26 15:02:30,164; INFO-[CLIENT-B:0xb]:已完成e84e2064ead042099310af1bd44821c0,结果:失败| 阅读| /mnt/DIRSPLIT-node0.b27-1/JUyw481MfvsBHOm1KQu7sHRB6ffAXKjwIATlsXmOgWh8XKQaIrPbxLgAo7sucdAM/o6V266xE8bTaUGzk8YDMfDAJp0YIfbT4Z41 [errno:116] | 旧文件句柄| 142 | 数据:{} | 2016年10月26日15:02:30.160 controller_debug.log.2:2016年10月26日15:02:30164;错误 - 操作请仔细阅读文件JUyw481MfvsBHOm1KQu7sHRB6ffAXKjwIATlsXmOgWh8XKQaIrPbxLgAo7sucdAM / o6V266xE8bTaUGzk8YDMfDAJp0YIfbT4fIK1oZ2R20tRX3xFCvjISj7WuMEwEV41意外失败,由于过时的文件句柄

谢谢

python linux nfs

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

从python sqlite异常获取更多信息

我正在使用python的内置sqlite3 DB模块

在将对象插入数据库表时,sqlite引发以下异常:

"PRIMARY KEY must be unique"
Run Code Online (Sandbox Code Playgroud)

由于每个对象有不同的插入方法,因此我无法确定它在哪个表中失败:

import sqlite3
...
class SomeObject1:
....
def _insert_some_object1(self, db_object):
        self._cursor.execute('insert into %s values (?,?,?)' % TABLE_NAME,
        (db_oject.v1, db_object.v2, db_object_v3,))
Run Code Online (Sandbox Code Playgroud)

异常碰上main()通过except Exception as e:,所以才信息,我已经得到了。

我想知道在哪个表中插入失败,值失败,等等。

sqlite异常中获取最多信息的正确方法是什么?

谢谢

python sqlite python-2.7

5
推荐指数
1
解决办法
2769
查看次数

有没有办法在python的argparse中创建参数,如果没有给出值,则返回true

目前--resize我创建的标志是boolean,意味着我的所有对象都将被调整大小:

parser.add_argument("--resize", action="store_true", help="Do dictionary resize")

# ...

# if resize flag is true I'm re-sizing all objects
if args.resize:
    for object in my_obects:
        object.do_resize()
Run Code Online (Sandbox Code Playgroud)

有没有办法实现argparse参数,如果传递为boolean flag(--resize)将返回true,但如果传递value(--resize 10),将包含值.

例:

  1. python ./my_script.py --resize # Will contain True that means, resize all the objects
  2. python ./my_script.py --resize <index> # Will contain index, that means resize only specific object

python python-2.7 argparse

3
推荐指数
1
解决办法
853
查看次数

标签 统计

python ×4

python-2.7 ×3

argparse ×1

linux ×1

nfs ×1

pycharm ×1

sqlite ×1