使用 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))
我有这个 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))