2016-10-14 6 views
0

私は通常、割り当てに関して助けを求めませんでしたが、部分的な質問に遭遇してしまいました。右。質問です: Python 3.5で、あるファイルの内容を別のファイルにコピーしようとしました。

は関数(文字列として)入力2つのファイル名として取りFCOPY()とコピー第二に、最初のファイルの 内容を書きます。

さてこれまでのところ、これは私が思い付くことができたものです:

def fcopy(file1, file2): 
os.chdir('C:/Users/HOME/Desktop/Introduction to Computing/Lab/assignments') 
open_file_1 = open(file1, 'r') 
open_file_2 = open(file2, 'w') 
for line in open_file_1: 
    open_file_2.write(line) 
open_file_1.close() 
open_file_2.close() 
open_file_2 = open(file2, 'r') 
for line in open_file_2: 
    print(line) 
open_file_2.close() 

は、私は多くのリソースを検索することにより、これまで得ることができた、と私はこれを作る方法を知りたいです作業。おかげ

+2

実際のコードを正確に表していることがわかるように、コードのインデントを修正してください。また、現在あなたのコードでうまくいかないことを説明してください。すなわち予期せぬ挙動が今起こっていることによって、物事がうまくいかないと信じることができます。最終的には、あなたの問題の良い[mcve]を読者に見せたいと思っています。 – idjaw

+0

まず、コードを使用する方法がわかりません.fcopy()関数で使用する必要があります。ファイル名を使用するとエラーが発生するので、何か問題があれば私はコーディングでやったかもしれない。 –

+0

コードはOKと思われます。エラーメッセージが表示されますか?常に完全なエラーメッセージを追加してください。 – furas

答えて

0

これは、ここで

def fcopy(file1, file2): 
    #os.chdir('C:/Users/HOME/Desktop/Introduction to Computing/Lab/assignments') 
    open_file_1 = open(file1, 'r') 
    open_file_2 = open(file2, 'w') 
    for line in open_file_1: 
     open_file_2.write(line) 
    open_file_1.close() 
    open_file_2.close() 
    open_file_2 = open(file2, 'r') 
    for line in open_file_2: 
     print(line) 
    open_file_2.close() 
fcopy("infile.txt", "outfile.txt") 

を助けるべきである別のアプローチ

def copy(infile, outfile): 
    with open(infile) as file_input: 
     with open(outfile, "w") as file_output: 
      for line in file_input: 
       file_output.write(line) 
copy("infile.txt", "outfile.txt") 

それはOUTFILEがクローズされることを保証しているため、このアプローチの方が良いです。

印刷INFILEからのコンテンツとOUTFILE

def fcopy(file1, file2): 
    #os.chdir('C:/Users/HOME/Desktop/Introduction to Computing/Lab/assignments') 
    open_file_1 = open(file1, 'r') 
    open_file_2 = open(file2, 'w') 
    print("-------------Infile-------------") 
    for line in open_file_1: 
     open_file_2.write(line) 
     print(line) 
    open_file_1.close() 
    open_file_2.close() 

    open_file_2 = open(file2, 'r') 
    print() 
    print("-------------Outfile-------------") 
    for line in open_file_2: 
     print(line) 
    open_file_2.close() 
fcopy("infile.txt", "outfile.txt") 

def copy(infile, outfile): 
    with open(infile) as file_input: 
     with open(outfile, "w") as file_output: 
      for line in file_input: 
       file_output.write(line) 

第二の方法

with open(infile, "r") as file_in: 
     print("Infile: ") 
     for line2 in file_in: 
      print(line2) 

    print() 

    with open(outfile, "r") as file_out: 
     print("Outfile: ") 
     for line3 in file_out: 
      print(line3)    

copy("infile.txt", "outfile.txt") 

私はこれを行うための、より最適化された方法があると確信していますが、これは私が今のところ何ができるものです。私はこれを行うより良い方法を見つけたら私の答えを更新します。

+0

あなたのコードはこの問題を解決する別のアプローチですが、 OPはコードを実行するのに問題があります。また、問題を攻撃する別の方法を提供する場合は、なぜこのアプローチを使用し、どのように役立つのかを説明してください。 – idjaw

+0

これは、それを働かせるのに役立ちました、ありがとうございます! –

+0

あなたは大歓迎です。あなたがその一部を理解する助けが必要な場合は、私に知らせてください。 – Maddy