小编Pra*_*van的帖子

在Python 3中重新打开一个已关闭的stringIO对象

所以,我创建一个StringIO对象来将我的字符串视为一个文件:

>>> a = 'Me, you and them\n'
>>> import io
>>> f = io.StringIO(a)
>>> f.read(1)
'M'
Run Code Online (Sandbox Code Playgroud)

然后我继续关闭'文件':

>>> f.close()
>>> f.closed
True
Run Code Online (Sandbox Code Playgroud)

现在,当我再次尝试打开'文件'时,Python不允许我这样做:

>>> p = open(f)
Traceback (most recent call last):
  File "<pyshell#166>", line 1, in <module>
    p = open(f)
TypeError: invalid file: <_io.StringIO object at 0x0325D4E0>
Run Code Online (Sandbox Code Playgroud)

有没有办法'重新打开'一个封闭的StringIO对象?或者是否应该使用io.StringIO()方法再次声明?

谢谢!

file-io python-3.x

5
推荐指数
3
解决办法
3040
查看次数

指定了"反向"范围的sed行号范围

使用sed指定行号时,它将执行指定范围内的指定操作.所以,

sed -n '5,10 p' < file
Run Code Online (Sandbox Code Playgroud)

将从文件中打印第5行到第10行.所以我的理解是,它扫描文件以找到与第一个指定参数(5)匹配的行号,并执行指定的操作,直到达到与第二个参数(10)匹配的行号.但是,当我颠倒范围时,即:

sed -n '10,5 p' < file
Run Code Online (Sandbox Code Playgroud)

它只打印文件中的第10行.那么,我对sed操作方式不正确的假设是什么?是什么原因导致第10行被打印,因为指定的"范围"甚至不是实际有效范围?

谢谢!

regex linux sed

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

Python函数返回True或1作为None,同时正确返回False和0

我有一个程序进行简单的回文检查,通过比较字符串的每一端,然后递归地执行原始字符串的子字符串.也就是说,我将str [0]与str [-1]进行比较,执行str [1,-1]并重复比较.我在逐步执行代码时发现的是,当我要求函数check_palin()返回1时,它返回None.我可以清楚地看到它'执行'返回语句,但是当我要求它返回1时它总是返回None.但是,它正确地返回0.返回True/False时会出现相同的行为.这是我的代码.我究竟做错了什么??

def check_palin(s):
    global init
    print("Init is %d" %(init))
    if len(s) <= 1 :
        if not init :
            print("returning 1")
            return True
        else :
            print("Please supply a string of atleast 2 characters! Exiting...\n")
            print("returning 0")
            return False
    else :
        init = 0
        if first_word(s) == last_word(s) :
            check_palin(middle(s))
        else :
            print("returning 0")
            return False


def first_word(s) :
    return s[0]

def last_word(s):
    return s[-1]

def middle(s):
    return s[1:-1]

init  = 1
s = raw_input("Please enter a string")
print(check_palin(s)) …
Run Code Online (Sandbox Code Playgroud)

python

-1
推荐指数
1
解决办法
629
查看次数

标签 统计

file-io ×1

linux ×1

python ×1

python-3.x ×1

regex ×1

sed ×1