我需要从文本文件中取出行并将它们用作python函数中的变量。
def call(file):
with open(file) as infile, open('output.txt', 'w') as outfile:
do stuff in a for loop
文件是变量名,我打算有一个包含文本文件名列表的文本文件,如下所示:
hello.txt
world.txt
python.txt
我可以用一个文件名调用该函数:
call(hello.txt)
但是我需要经历一长串文件。如何在使用每个文件名调用函数一行时逐行读取包含文件名的文件?
答案 0 :(得分:2)
“如何在使用每个文件名调用函数一行时逐行读取包含文件名的文件?” ...您刚才解释了要做什么。假设包含其他文件名的文本文件为"listoffiles.txt"
,
with open('listoffiles.txt') as fp:
for line in fp:
filename = line.strip()
if filename:
call(filename)
请注意,由于call
会覆盖output.txt
,因此您可能会遇到其他问题。
当然,根据其他设计目标,您可以call
处理打开的文件对象而不是文件名。这使得该函数更通用,并且可能对其他情况有用,例如使用其他类似文件的对象,例如StringIO
。
def call(output, filename):
with open(filename) as infile:
# do some stuff directly with file
with open('output.txt', 'w') as output:
with open('listoffiles.txt') as fp:
for line in fp:
filename = line.strip()
if filename:
call(output, filename)
答案 1 :(得分:0)
在以下示例中,我将文本文件字符串分配给任意变量 然后我删除了' .txt'以便遵守变量名称约定 然后我将x的字符串值赋给数字2
x='hello.txt'
x = x.replace(".txt","")
exec("%s = %d" % (x,2))
print(str(x) + ' is equal to: ' + str(hello))
如果您尝试使用代码
hello is equal to: 2