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

新手上路,请多包涵

我需要在文件中写入一些东西,我在 python 中通过命令行传递这些文件。我正在使用下面的代码 mycode.py

 import csv
import sys

path = 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

我必须附加到代码中的目录。

原文由 Venkat J 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 824
2 个回答

您应该使用 path 变量的值。

代替

with open(r"path" , 'w') as csvFile:

with open(path , 'w') as csvFile:
          ^^^^

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

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

原文由 Mihai Alexandru-Ionut 发布,翻译遵循 CC BY-SA 4.0 许可协议

好吧,这奏效了

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)

原文由 user3137329 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题