小编Sah*_*and的帖子

如何在python中复制文本文件

这就是我想要做的事情:

import copy
def printtext(swefile):
    for row in swefile:
        print(row)
text = open("wordsv.txt","r",encoding="utf-8")
text2 = copy.copy(text)
printtext(text)
print(text2.readlines())
Run Code Online (Sandbox Code Playgroud)

但这是不可能的,TypeError:无法序列化'_io.TextIOWrapper'对象.所以我想知道是否有一种很好的"克隆"文本变量的方法,这样我就可以再次打印所有的行.我知道我可以再次阅读该文件,但是这个答案并没有解决我遇到的更大的问题,所以任何有关如何完成这项工作的建议都是有帮助的.


这是更大的背景,因为我无法用你的建议解决我的问题:

with open(textfilename, "r", encoding = "utf-8") as swefile:
    for row in swefile:
        word = row.strip()
        tempfile = copy.copy(swefile)
        l = getFurthest(word,tempfile)
Run Code Online (Sandbox Code Playgroud)

我想在这里发生的事情是,我想发送swefile尚未读取的部分(即通过for循环迭代)getFurthest()!而且我无法发送,swefile因为这将使整个事情被读取,因此for循环中的迭代将停止,对吧?那么我怎样才能只发送已经读过的文本文件的一部分,getFurthest()同时仍然可以在其余部分之后迭代?

python text clone file

0
推荐指数
1
解决办法
4001
查看次数

捕获异常时,sys.exit()不会退出程序

该程序检查分子式.我希望程序在检测到公式中的错误时立即退出.例如,公式"a"不正确.当我通过我的代码运行它时:

def readletter():
    if q.peek() in string.ascii_lowercase:
        print(q.peek())
        return q.get()
    else:
        raise Formelfel("Förväntad liten bokstav.")

def readLetter():
    if q.peek() in string.ascii_uppercase:
        print(q.peek())
        return q.get()
    else:
        raise Formelfel("Förväntad stor bokstav.")

def readAtom():
    X = ""
    try:
        X += readLetter()
    except Formelfel:
        print("Missing capital letter at end of row "+getRest())
        sys.exit()
        return

    try:
        x = readletter()
        atom = X+x
    except (Formelfel, TypeError):
        atom = X

    if atom in ATOMER:
        return
    else:
        raise Formelfel("Okänd atom.")

def readGroup():
    if q.peek() in string.ascii_uppercase or q.peek() …
Run Code Online (Sandbox Code Playgroud)

python exit sys

0
推荐指数
1
解决办法
969
查看次数

初学者C,为什么在我的字符串中添加了一堆随机的东西?

我有以下程序,我想用我的名字(Sahand)逐个字符地读取并存储在一个字符串中:

#include <stdio.h>


int main(int argc, const char * argv[]) {

    char temp;
    char str[6];
    int i;
    for ( i = 0 ; i < 6 ; i++ )
    {
        scanf(" %c",&temp);
        printf("Our temp is: %c\n",temp);
        str[i] = temp;
        printf("Our total string is: %s\n",str);
    }
    printf("Program ended with the string: %s\n",str);

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

s
Our temp is: s
Our total string is: s
a
Our temp is: a
Our total string is: sa
h
Our temp is: h …
Run Code Online (Sandbox Code Playgroud)

c string

0
推荐指数
1
解决办法
107
查看次数

Python:理解生成器中的产量分配

这是一个无限循环程序,我添加了行号打印以方便跟踪程序执行。

def infinite_looper(objects):
    count = 0
    print("row 35")
    while True:
        print("row 37")
        if count >= len(objects):
            count = 0
        print("Row 40")
        message = yield objects[count]
        print("row 42")
        print("The message is "+str(message))
        print("row 44")
        if message != None:
            count = 0 if message < 0 else message
            print("row 47, count = "+str(count))
        else:
            count += 1
            print("row 50")
        print("Row 51")

x = infinite_looper("abcdefghijkl")

print("executing next 1st time")
print(next(x))

print("executing next 2nd time")
print(next(x))

print("executing send 1st time")
print(x.send(10))
Run Code Online (Sandbox Code Playgroud)

输出是:

executing next …
Run Code Online (Sandbox Code Playgroud)

python yield generator

0
推荐指数
1
解决办法
831
查看次数

如何将列表转换为复杂的字符串

我想转这个清单:

['1','2','3','4']
Run Code Online (Sandbox Code Playgroud)

进入这个字符串:

"%(1)s, %(2)s, %(3)s, %(4)s"
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做,最好是在一线?

python string list

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

标签 统计

python ×4

string ×2

c ×1

clone ×1

exit ×1

file ×1

generator ×1

list ×1

sys ×1

text ×1

yield ×1