使用 python 脚本将文件内容复制到另一个文件

copy content of file to another file using python script

我有这个 python 脚本可以打开文件对话框和 select 文本文件,然后将其内容复制到另一个文件。

当我打开第二个文件时它仍然是空的

谁能帮我解决这个问题?

OPenDirectory.py

#!/usr/bin/python

import Tkinter 
import tkFileDialog

''''Open txt files in the selected path '''
def OpenRead():

    Tkinter.Tk().withdraw()
    in_path = tkFileDialog.askopenfile(initialdir = 'C:\Users\LT GM\Downloads', filetypes=[('text files', ' TXT ')])
    readingFile = in_path.read()
    writeFile = open ('copiedFile.txt', 'w')
    writeFile.write(readingFile)
    print " we'r done!!" 
    in_path.close()
    writeFile.close()


if __name__== "__main__":
    OpenRead()

从一个文件到另一个文件的逐行复制方式:

#!/usr/bin/python

from os import listdir
from os.path import isfile, join

def readWrite():
    mypath = 'D:\'
    files = [f for f in listdir(mypath) if isfile(join(mypath, f))]
    for file in files:
        if file.split('.')[1] == 'txt':
            outputFileName = 'out-' + file
            with open(mypath+outputFileName, 'w') as w:
                with open(mypath+file) as f:
                    for l in f:
                        print l
                        w.write(l)

if __name__== "__main__":
    readWrite()

更新: 更新了上面的代码,所以它读取指定目录下的所有txt文件并将它们复制到其他文件中。您可以随心所欲地使用目录。我还添加了一个 "print l" 它将打印传入文件的内容。

您可以使用shutil.copyfile,无需打开或读取文件。

from shutil import copyfile

copyfile("source","dest")

因此对于您的代码:

 def OpenRead():
    Tkinter.Tk().withdraw()
    in_path = tkFileDialog.askopenfile(initialdir = 'C:\Users\LT GM\Downloads', filetypes=[('text files', ' TXT ')])
    copyfile(in_path.name, 'copiedFile.txt')
    print " we'r done!!"
if __name__== "__main__":
    OpenRead()

该文件也将被复制给你密码,所以如果你想把它保存在特定的地方,你需要传递完整路径。

readingFile = in_path.read() 读取文件的内容并将其放入变量 readingFile 假设文件的内容是 hello readingFile 的值将是 hello

destinationFile = readingFile, '.txt' destinationFile 是一个元组,值为 '<'contents of file'>','.txt' 而是使用 destinationFile = readingFile+'.txt'

这会奏效。但最终结果不会是你的结果 expecting.the 结果将是一个文件,其名称作为读取文件的内容,内容也相同。最好在 destinationFile 中指定一个文件名,例如 destinationFile = 'destfile.txt'

为什么不直接使用 os 和 shell 复制命令。

import os 
start= '~/user/file'
dest= '~/user/folder1/file'

os.system('cp %s %s' %(start,dest))