为了账号安全,请及时绑定邮箱和手机立即绑定

在python中将文件路径作为命令行参数传递

在python中将文件路径作为命令行参数传递

慕容3067478 2021-08-17 16:03:16
我需要在文件中写入一些内容,我正在通过 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:
          ^^^^

如果要将一个文件附加目录路径,可以使用ospackage.json 。

file_path = os.path.join(path, file)


查看完整回答
反对 回复 2021-08-17
?
海绵宝宝撒

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)


查看完整回答
反对 回复 2021-08-17
?
侃侃尔雅

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 次,它将在两个不同的行中添加“优秀”而不是并排。


查看完整回答
反对 回复 2021-08-17
  • 3 回答
  • 0 关注
  • 375 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号