我需要在文件中写入一些内容,我正在通过 python 中的命令行传递这些文件。我正在使用下面的代码mycode.pyimport csvimport syspath = sys.argv[1]row = ['4', ' Danny', ' New York']with open(r"path" , 'w') as csvFile:writer = csv.writer(csvFile)writer.writerow(row)当我执行它时,文件没有被写入,但是当我将路径硬编码为 with open(r"C:\Users\venkat\Desktop\python\sam.csv", 'w') as csvFile:正在写入文件,如果我遗漏了什么,请告诉我。还有一个要求是我必须只传递打开的目录,并附加一些文件名。例如:我可以通过C:\Users\venkat\Desktop\python, sam.csv我必须在代码中附加到目录。
3 回答

呼唤远方
TA贡献1856条经验 获得超11个赞
您应该使用path
变量的值。
代替
with open(r"path" , 'w') as csvFile:
和
with open(path , 'w') as csvFile: ^^^^
如果要将一个文件附加到目录路径,可以使用os
package.json 。
file_path = os.path.join(path, file)

海绵宝宝撒
TA贡献1809条经验 获得超8个赞
嗯,这有效
import csv
import sys
path = sys.argv[1]
row = ['4', ' Danny', ' New York']
with open(path, 'w') as csvFile:
writer = csv.writer(csvFile)
writer.writerow(row)

侃侃尔雅
TA贡献1801条经验 获得超16个赞
如果您想附加(或写入)现有文件,这也可以使用format:
path="insert\\pathOf\\file.txt"
with open("{}".format(path),'a') as file:
file.write("excellent\n")
'a' 用于追加,因此它会将 'excellent' 字符串添加到 file.txt。如果你想写一个新文件,只需输入'w'而不是'a'。
如果 file.txt 已经存在,则使用 'w' 将覆盖该文件。\n 用于以新行结尾,因此如果您运行相同的代码 2 次,它将在两个不同的行中添加“优秀”而不是并排。
添加回答
举报
0/150
提交
取消