2

重複の可能性:
Python でファイルを連結するにはどうすればよいですか?

def copy_file(file_name,copy_file_name,copies):
    i=0
    a=open(file_name,'r')
    f=open(copy_file_name,'w')
    for line in a:
        while i<copies:
            f.write(line)
            i+=1
    a.close()
    f.close()
    return 
copy_file("D:\student\example2.txt","D:\student\copy_file_name.txt",3)

テキストファイルを別のファイルに3回コピーする必要があり、最初の行の後でループが停止します:(

def merge_file(list,file_name):
    for i in range(len(list)):
        a=open(list[i],'r')
        f=open(file_name,'w')
        f.write(list[i])
    f.close
    a.close
    return
merge_file([("D:\student\example2.txt"),("D:\student\example3.txt")],"D:\student\copy_file_name.txt")

ファイルのリストを 1 つのファイルにコピーする必要があります。

4

5 に答える 5

0

merge_fileの呼び出しは、単一の項目が2タプルであるlen1のリストを渡します。

あなたが持っているものの代わりに:

merge_file([("D:\student\example2.txt"),("D:\student\example3.txt")],"D:\student\copy_file_name.txt")

これを試してください(これはあなたが意味したことだと思います:

merge_file(["D:\student\example2.txt","D:\student\example3.txt"],"D:\student\copy_file_name.txt")

違いがわかるといいのですが。Pythonとリストおよびタプルを初めて使用する場合は、調査をお勧めします:http: //docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer- xrange

于 2012-11-19T19:53:39.567 に答える
0

を使用してファイルを追加する場合は、 「ファイルにどのように追加しますか?」open(filename, 'a')も参照してください。

于 2012-11-19T18:38:36.797 に答える
0

私が正しく理解していれば:

import fileinput
with open('output.txt') as fout:
    fout.writelines(fileinput.input(your_list))

これは、「で指定されたファイル名からすべての行を取得し、your_listそれらをに書き込むoutput.txt」ことです。

于 2012-11-19T20:06:51.817 に答える
0

あるファイルの内容を別のファイルに 3 回コピーするには、次のようにします。

with open('outfile.txt','w') as outFile:
    for _ in range(3):
        with open('infile.txt','r') as inFile:
            for line in inFile:
                outFile.write(line)

ファイルのリストの内容を別のファイルにコピーするには、次のようにします。

def merge_file(fileList, outFileName):
    with open(outFileName, 'w') as outFile:
        for fileName in fileList:
            with open(fileName, 'r') as inFile:
                for line in inFile:
                    outFile.write(line)

これらは両方ともテストされていませんが、動作するはずです

于 2012-11-19T18:50:14.930 に答える
0

shutil.copyfileobjを使用してコピーを作成します。このアプローチは、入力ファイル全体のエンコーディングの問題とプラットフォーム固有の行区切りを完全に無視していることに注意してください。プレーン バイト ストリームがコピーされます。

import shutil

# the file to copy to
outfname = "D:\student\copy_file_name.txt"

# the files to copy from
infnames = ["D:\student\example2.txt", "D:\student\example3.txt"]

# the copy procedure
with open("outfile", 'w') as outfile:
    for fname in infnames:
        shutil.copyfileobj(open(fname, 'rb'), outfile)

1 つのファイルの内容を一定の回数だけ複製したい場合は、infnamesそれに応じて次のように構成します。

# the file to copy from n_repetitions times
infnames = ["D:\student\example2.txt"] * n_repetitions

# same as above
于 2012-11-19T19:42:51.413 に答える