Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 write file.txt是';不能正确保存输出_Python_Python 3.x_List_File - Fatal编程技术网

python write file.txt是';不能正确保存输出

python write file.txt是';不能正确保存输出,python,python-3.x,list,file,Python,Python 3.x,List,File,我在一个.txt文件中有一系列URL,我想打印我对一个新的.txt文件所做的python更改 我的URL.txt http://www.live.com http://www.twitter. com http://www.youtube.com 进行更改后,终端输出为打印(新列表) 然后,当我写入新的.txt时,唯一写入的是 ['http://www.youtube.com'], 我用来编写新文本的代码如下 with open("listurls.t

我在一个.txt文件中有一系列URL,我想打印我对一个新的.txt文件所做的python更改

我的URL.txt

    http://www.live.com
    http://www.twitter. com
    http://www.youtube.com
进行更改后,终端输出为打印(新列表)

然后,当我写入新的.txt时,唯一写入的是

    ['http://www.youtube.com'],
我用来编写新文本的代码如下

    with open("listurls.txt", "w") as f:
            f.writelines(new_list)
新列表是一个str

有什么原因我不能在我的.txt文件中打印每一行吗

整个代码如下,我知道这有点冗长,但这是一个练习

with open ("testurls.txt", "r") as txt_file:            
for urls in txt_file:                               
    data = urls                                     
    #print(data)                                   
    def remove(data):                               
       return data.replace(" ", "")                  
    #print (remove(data))                           
    links = (remove(data))                          
    #print(links)                                   
    def Convert(string):                            
        li = list(string.split(" "))                
        return li
    str1 = links                                    
    #print(Convert(str1))                           
    list_urls = (Convert(str1))                     
    #print(list_urls)                               
    stripped = [s.rstrip('\n') for s in list_urls]  
    #print (stripped)                               
    value = stripped                                
    for lists in value:                             
        new_list = ("['" + lists + "'],")           
        print(new_list)                            
        with open("listurls.txt", "w") as f:
            f.writelines(new_list)
            #I MADE IT THIS FAR

以附加模式打开文件。使用此代码在文件中写入

with open("listurls", "a") as myfile:
    myfile.write(new_list)

以附加模式打开文件。使用此代码在文件中写入

with open("listurls", "a") as myfile:
    myfile.write(new_list)

问题在于将列表写入文件的方式。实际上,您将覆盖这段代码中每个列表元素的文件:

for lists in value:                             
        new_list = ("['" + lists + "'],")           
        print(new_list)                            
        with open("listurls.txt", "w") as f:   # <<--- here is the problem
            f.writelines(new_list)

问题在于将列表写入文件的方式。实际上,您将覆盖这段代码中每个列表元素的文件:

for lists in value:                             
        new_list = ("['" + lists + "'],")           
        print(new_list)                            
        with open("listurls.txt", "w") as f:   # <<--- here is the problem
            f.writelines(new_list)
writelines()未将新的_列表附加到listurls.txt。它正在做的是:-

listurls = ['http://www.live.com'],
在第一次迭代中

在下一次迭代中

listurls = ['http://www.twitter.com'],
而不是

listurls = ['http://www.live.com'],
           ['http://www.twitter.com'],
要解决此问题,请以追加模式而不是写入模式打开ListURL

with open("listurls.txt", "w+") as f:
            f.writelines(new_list)

writelines()未将新的_列表附加到listurls.txt。它正在做的是:-

listurls = ['http://www.live.com'],
在第一次迭代中

在下一次迭代中

listurls = ['http://www.twitter.com'],
而不是

listurls = ['http://www.live.com'],
           ['http://www.twitter.com'],
要解决此问题,请以追加模式而不是写入模式打开ListURL

with open("listurls.txt", "w+") as f:
            f.writelines(new_list)


最简单的方法可能是先打开文件,并在写入所有行时保持打开状态。现在您正在为每一行打开并覆盖它(模式“w”覆盖旧内容),最简单的方法可能是首先打开文件,并在写入所有行时保持打开状态。现在你正在为每一行打开并覆盖它(模式“w”覆盖旧内容),我很感激。这正是我要找的。我一定是在文档中遗漏了这一点。我很感激。这正是我要找的。我一定是在文件中漏掉了。