如何用Python将数据写入文件(文件是create,但没有数据)
当我像下面那样直接传递文件名时,数据正在写入输出文件如何用Python将数据写入文件(文件是create,但没有数据),python,Python,当我像下面那样直接传递文件名时,数据正在写入输出文件 Rpt_file_wfl = open('output.csv','a') Rpt_file_wfl.write(output) 但当我将文件名作为变量传递时,文件正在创建,但没有数据 OUT_PATH = E:\MYDRIVE outDir = py_script outFiles = output.csv Rpt_file_wfl = open(OUT_PATH+outDir+outFiles[0],'a') Rpt_
Rpt_file_wfl = open('output.csv','a')
Rpt_file_wfl.write(output)
但当我将文件名作为变量传递时,文件正在创建,但没有数据
OUT_PATH = E:\MYDRIVE
outDir = py_script
outFiles = output.csv
Rpt_file_wfl = open(OUT_PATH+outDir+outFiles[0],'a')
Rpt_file_wfl.write(output)
最后我确实关闭了文件
为什么不使用上述代码编写数据。以下是工作代码的示例:
OUT_PATH='D:\\output\\'
outDir='scripts\\'
outFiles=['1.csv', '2.csv']
path = OUT_PATH+outDir+outFiles[0]
output='Example output'
with open(path, 'a') as file:
file.write(output)
尝试使用
os.path
import os
output_text = 'some text'
drive_path = 'E:'
drive_dir = 'Mydrive'
out_dir = 'py_script'
out_file = 'output.csv'
full_path = os.path.join(drive_path, drive_dir, out_dir, out_file)
with open(full_path, 'a', encoding='utf-8') as file:
file.write(output_text)
如果不起作用-尝试.replace()
分隔符,如:
full_path = full_path.replace('/', '\\')
否则:
full_path = full_path.replace('\\', '/')
什么是赛尔夫?您可以在块的开头和结尾使用3-`-符号将代码放入块中。请给我们self.OUT\u PATH、self.outDir和self.outFiles[0]OUT\u PATH=E:\Mydrive\outDir=py\u script\outFiles=outputa的所有代码或值。您完全确定第二个示例中使用的是什么文件名吗?我认为输出是写入的,但不是您所期望的文件名。您可以添加行
print(self.OUT\u PATH+self.outDir+self.outFiles[0])
来双重检查文件名。但是文件正在创建中。。文件是用相同的代码创建的,我也试过了。我甚至在写之前使用PRINT检查文件名和路径。它创建了文件,但其中没有数据。@ViplavaVegination此代码创建了包含数据的文件。只要运行它,你就会看到。是的。这起作用了。非常感谢。在另一个脚本中有一个不同的调用,该脚本正在删除我的文件并重新创建一个空文件:(。您的代码1.filename帮助我找到了这一点。