繁体   English   中英

初学者Python:将输出文件另存为argv输入文件名

[英]Beginner Python: save output file as argv input filename

我想用与输入文件相同的名称保存生成的图。 输入是通过命令行输入的,因此我不太确定该怎么做。

#!/usr/bin/python

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from numpy import arange,array,ones#,random,linalg
from pylab import plot,show
from scipy import stats
from sys import argv

a = argv[1]
b = argv[2]

list1 = open(a)
list2 = open(b)

xi = list1.read().splitlines()
filter(None,xi)

y = list2.read().splitlines()
filter(None,y)

xi = [float(xk) for xk in xi]
y = [float(yk) for yk in y]

slope, intercept, r_value, p_value, std_err = stats.linregress(xi,y)

print 'r value', r_value

line = slope*xi+intercept
plot(xi,line,'r-',xi,y,'o')
plt.savefig('a')

我的输入是number001.txt,我希望输出是number001.png。

谢谢!!

  1. 通过sys.argv获取输入文件名
  2. 使用具有不同扩展名的相同名称保存结果。

获取输入文件名并使用相同文件名保存输出的简单示例。

例如

import sys

if __name__=="__main__":
    print "argument:", sys.argv  

    inputfile = sys.argv[1]
    print "inputfile:", inputfile

    outputfile = inputfile.split(".")[0] + "__output.txt"

    print "outputfile:", outputfile

    with open(outputfile, "wb" ) as fp:
        fp.write("some content")

输出:

vivek@vivek:~/Desktop/stackoverflow$ python 25.py test.txt
argument: ['25.py', 'test.txt']
inputfile: test.txt
outputfile: test__output.txt

os模块也有路径拆分方法。

例如

>>> import os
>>> os.path.splitext("input.txt")
('input', '.txt')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM