Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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)_Python_Python 3.x_Python 2.7 - Fatal编程技术网

向文件中添加字符串(python)

向文件中添加字符串(python),python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我想在文件中的每一行添加一些字符串,文件的内容:(list.txt) 我想做什么:(!我不想将这些添加到文件(list.txt)中,只想在终端中打印) 我试过的代码: file = open("list.txt") for i in file: new = "new"+i print(new) for i in file: old = "old"+i print(old) o/p我得到: newsongs newflower 我期待的是: newsongs old

我想在文件中的每一行添加一些字符串,文件的内容:(list.txt)

我想做什么:(!我不想将这些添加到文件(list.txt)中,只想在终端中打印)

我试过的代码:

file = open("list.txt")

for i in file:
   new = "new"+i
   print(new)

for i in file:
   old = "old"+i
   print(old)
o/p我得到:

newsongs
newflower
我期待的是:

newsongs
oldsongs
newflower
oldflower

file对象是一个迭代器,这意味着一旦它耗尽(在for循环中迭代),它就是空的。您应该能够通过在两个循环之间使用file对象的
seek()
方法返回到文件的开头:

fin=打开(填充)
对于fin中的行:
打印(行)#在这里做某事
fin.seek(0)
对于fin中的行:
打印(行)#在这里做其他事情
但这似乎不是你想要的。您只需为读取的每个文件行创建两个新字符串并将其打印出来:

对于fin中的行:
打印('something+',第行)
打印('其他内容+',行)
试试这个:

with open("list.txt", "r") as file:
    org_lines = [i.strip() for i in file.readlines() if i.strip()]
output = []
for i in org_lines:
    output.append('new'+i+'\nold'+i)
with open("new_file.txt", "w") as f:
    f.write('\n'.join(output))

首先阅读所有行并将它们放入一个列表
org\u行
。现在,对于该列表中的每个项目(最终是原始文件中的一行),将一个新字符串追加到另一个新列表中,该字符串在该行之前连接了
'new'
,然后在该行之前连接了
'old'
。现在用换行符加入这个新创建的列表,并将整个字符串写入另一个文件。

它现在可以工作了。谢谢,并且可以得到与我之前解释的完全相同的内容>o/p:newsong,newflower,oldsong,oldshower如果得到这样的内容会更好:newsong,oldshong,newflower,oldshower现在我得到的是空白->新歌,老歌…如何摆脱它?通过字符串连接,就像你在代码中做的那样:
print('new'+行)
newsongs
oldsongs
newflower
oldflower
with open("list.txt", "r") as file:
    org_lines = [i.strip() for i in file.readlines() if i.strip()]
output = []
for i in org_lines:
    output.append('new'+i+'\nold'+i)
with open("new_file.txt", "w") as f:
    f.write('\n'.join(output))