Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何读取python和numpy中的文件并创建输出文件,而不必在代码中手动更改输入文件的名称?_Python_Arrays_Numpy - Fatal编程技术网

如何读取python和numpy中的文件并创建输出文件,而不必在代码中手动更改输入文件的名称?

如何读取python和numpy中的文件并创建输出文件,而不必在代码中手动更改输入文件的名称?,python,arrays,numpy,Python,Arrays,Numpy,我想读一个文本文件,它有任意数量的数字列 我想处理数据,然后创建一个输出文件 我的代码是: import numpy as np array=np.loadtxt('filename.txt') #multiply first column by 2 array[:,0]=array[:,0]*2 savetxt('filename2.txt',array) 我只想在文件名上运行代码,而不必每次都在代码中手动键入文件名 我怎样才能做到这一点 谢谢 使用glob包,它将获取目录中具有特定

我想读一个文本文件,它有任意数量的数字列

我想处理数据,然后创建一个输出文件

我的代码是:

import numpy as np

array=np.loadtxt('filename.txt')

#multiply first column by 2 
array[:,0]=array[:,0]*2

savetxt('filename2.txt',array)
我只想在文件名上运行代码,而不必每次都在代码中手动键入文件名

我怎样才能做到这一点


谢谢

使用glob包,它将获取目录中具有特定扩展名类型的所有文件,并允许您使用它们的数据。基本上,在运行程序之前,您只需要将文本文件放入一个文件夹

import glob
x = []
for filename in glob.iglob('/Path_to_Directory/*.txt'): #Takes all text files in folder
     x.append(filename)

for i in x: #Loop through all folders in directory 
    with open (i, 'rU') as infile: 
然后运行代码:

python myscript.py inputfile.txt outputfile.txt

只需将文件名分配给一个变量,并在函数调用中使用它

import numpy as np
filename = 'filename.txt'  # or get it from input
data=np.loadtxt(filename)
data[:,0]=data[:,0]*2
np.savetxt(filename, data)  # reuse the filename variable (string)

将文件名设置为cmd或其他位置的参数您必须使用
openfiledialog()
方法才能指出文件的位置,而不是手动写入。请在您的帖子中设置代码格式,以便于阅读。“手动键入文件名”是什么意思?这是脚本还是运行交互式会话?文件名是固定的,还是取决于用户输入?哇,这正是我需要的。非常感谢。因此,sys是python中的一个模块,它允许我以交互方式将代码应用于文件,而无需手动更改文档中代码的名称。correct?---此模块提供对解释器使用或维护的一些变量以及与解释器强交互的函数的访问。sys比您的语句更宽,但sys.argv是第一次执行解释器p.s时提供的参数列表。你的书面问题有点模糊,所有3个答案都在你的问题范围内有效。你可以考虑把你的问题写得更具体些,然后接受最贴近它的答案。
import numpy as np
filename = 'filename.txt'  # or get it from input
data=np.loadtxt(filename)
data[:,0]=data[:,0]*2
np.savetxt(filename, data)  # reuse the filename variable (string)