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

时间:2018-11-14 08:17:12

标签: 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

我必须在代码后附加到目录。

4 个答案:

答案 0 :(得分:4)

您应该使用path变量的值。

替换

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

使用

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

如果您想将一个文件追加目录路径,则可以使用os包。

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

答案 1 :(得分:2)

行得通

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)

答案 2 :(得分:0)

如果要将大括号转换为原始格式,则应添加大括号

with open(rf"{path}" , 'w') as csvFile:

答案 3 :(得分:0)

如果您想附加(或写入)现有文件,这也可以使用 format

path="insert\\pathOf\\file.txt"
with open("{}".format(path),'a') as file:
    file.write("excellent\n") 

'a' 用于追加,所以它会将 'excellent' 字符串添加到 file.txt。 如果你想写一个新文件,只需输入'w'而不是'a'。

使用 'w' 将覆盖 file.txt(如果已经存在)。 \n 用于以新行结尾,因此如果您运行相同的代码 2 次,它将在两个不同的行中添加 'excellent',而不是并排。