Python读 - 修改 - 写行

时间:2015-06-03 17:40:08

标签: python

我正在逐行对文件进行一些编辑

我想做的是以下内容 我有一条线,我想使用分隔符来分割它,并在分隔符(即空格)后取第一个参数。

for line in file1:
  line = line.strip();
  new = line.split(" ")[1]+"\n";      
  file2.write(new);
file2.close();
file2  = open("temp.hex",'r');


for line in file2:

你可以看到我这样做的方式是通过分隔符分割线并写出来 到新文件。然后我想做更多的编辑,所以我必须关闭并重新打开文件,逐行迭代

我的问题是 1.我可以修改原来在file1上的行吗? 2.我必须在逐行扫描之前关闭file2吗?

感谢分配,乔纳森

2 个答案:

答案 0 :(得分:1)

仅供参考,你不需要Python中的分号。它们不会损害您的代码,但它们也不是必需的。

您可以将多个open调用与with语句结合使用,该语句也会在程序退出后隐式关闭文件:

with open('a', 'r') as file1 and open('b', 'w') as file2:
    for line in file1:
        line = line.strip()
        new = line.split(" ")[1]+"\n"
        file2.write(new)

        # do additional editing

答案 1 :(得分:0)

因为评论的声望限制我需要在这里写回答xPino 来自ILostMySpoon回答:

with open('a', 'r') as file1 and open('b', 'w') as file2:
    for line in file1:
        line = line.strip()
        new = line.split(" ")[1]+"\n"
        file2.write(new)

    # do additional editing 
  1. 打开一个只读atr为file1 [file1 = fopen('filename','attributes')]与file2相同
  2. for file1
  3. 中的每一行
  4. line = line.strip()删除行尾的空白
  5. new =该行在空白处被分割,并最后添加了\ n。
  6. 将新文件写入文件2。
  7. 如果我正确使用file2

    ,它将每次都重写文件2