1

ユーザーが指定したファイルをコピーし、そのコピーを作成する必要があります (ユーザーが指定した名前を付けます)。これは私のコードです:

import copy

def main():

    userfile = raw_input('Please enter the name of the input file.')
    userfile2 = raw_input('Please enter the name of the output file.')

    infile = open(userfile,'r')

    file_contents = infile.read()

    infile.close()

    print(file_contents)


    userfile2 = copy.copy(file_contents)

    outfile = open(userfile2,'w+')

    file_contents2 = outfile.read()

    print(file_contents2)

main()

2 番目のファイル outfile の内容が出力されないため、ここで奇妙なことが起こっています。

4

3 に答える 3

3

outfile を読んでいるのに、なぜ で開くの'w+'ですか? これにより、ファイルが切り捨てられます。

読んで使い'r'ます。リンクを見る

于 2013-03-05T19:12:14.270 に答える
1

Python の shutil は、ファイルをコピーするためのより移植性の高い方法です。以下のサンプルを試してください。

import os
import sys
import shutil

source = raw_input("Enter source file path: ")
dest = raw_input("Enter destination path: ")

if not os.path.isfile(source):
    print "Source file %s does not exist." % source
    sys.exit(3)

try:
    shutil.copy(source, dest)
except IOError, e:
    print "Could not copy file %s to destination %s" % (source, dest)
    print e
    sys.exit(3)
于 2013-03-05T21:06:11.473 に答える
0

入力ファイルの内容を出力ファイルに書き込んでみませんか?

userfile1 = raw_input('input file:')
userfile2 = raw_input('output file:')

infile = open(userfile1,'r')
file_contents = infile.read()    
infile.close()

outfile = open(userfile2,'w')
outfile.write(file_contents)
outfile.close()

copy が行うことは、Python でオブジェクトを浅いコピーすることであり、ファイルのコピーとは関係ありません。

この行が実際に行うことは、入力ファイルの内容を出力ファイルの名前にコピーすることです。

userfile2 = copy.copy(file_contents)

出力ファイル名が失われ、コピー操作が行われません。

于 2013-03-05T19:23:58.710 に答える