簡體   English   中英

使用python從文件的特定部分復制到另一部分

[英]Copying from a specific part of a file to another with python

我正在嘗試將文件的特定部分復制到另一部分。 輸入文件有四行以相同的名稱開頭(在給定的示例中為“ 1”)。 我不完全知道如何只取文件中第一個“ 1”和第二個“ 1”(超過100行...)之間的部分:

··1···1···1

我剛剛開始以下工作:

f_read = open(pathway, "r")
f_write = open(pathway, "w")
cnt = 0

with f_read as f1:
    for line in f1:
       if line.startswith("1"):
          cnt =+ 1
          if cnt == 2:
             break

而且這里我不知道如何指定我想要的文件部分(從第一個“ 1”到第二個“ 1”)...

有任何想法嗎? 先感謝您!!

基本上,

for line in in_file:
   if line.startswith('1'):
       break

for line in in_file:
   if line.startswith('1'):
       break
    <do stuff>

這利用了python迭代器是有狀態的事實,並且第二個循環從第一個循環停止的地方開始,而不是從頭開始。

您應該使用with打開兩個文件。 在你的代碼,如果路徑實際上是同一個文件,你立即打開pathway打開它來讀取,所以你基本上要嘗試遍歷一個空文件后寫的。 您應該使用臨時文件進行寫入,然后根據需要更新原始文件。

with open(pathway) as f_read, open("temp_out.txt", "w") as f_write:
    for line in f_read:
         if line.startswith("1")
             for wanted_line in f_read:
                 # work on wanted lines
                 if wanted_line.startswith("1"):
                     break
with open("temp_out.txt", "w") as f_in, open(pathway, "w") as f_out:
    for line in f_in:
        f_out.write(line)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM