从文件中读取并写入新文件的函数
问题描述:
我需要定义一个读取csv文件的函数,之后我需要执行一些函数,它们从所选文件中获取信息并进行一些计算,稍后写入到一个新的文件。 这部分代码的样子:从文件中读取并写入新文件的函数
if str1 == 'small':
with open('small.csv', 'r+') as small:
read_small = csv.reader(small)
for row in read_small:
print row
elif str1 == 'big':
with open('big.csv', 'r+') as big:
read_big = csv.reader(big)
for row in read_big:
print row
else:
print "File not found"
现在,它打印出的文件,因为我希望他们看,但是当我尝试变形点焊上不打印出文件中的函数,只是返回它对我来说,我可以在其他函数中调用它来计算它不起作用! 任何提示? (我用Google搜索为****找到一个解决方案,我是新手)
答
但是当我尝试是变形点焊上不会打印出文件中的函数,只是返回对我来说
def get_lines(my_str):
file_picker = {'small': 'small.csv', 'big':'big.csv'}
with open(file_picker[my_str]) as f:
my_csv_reader = csv.reader(f)
return [ row for row in my_csv_reader ]
+0
是的,但我希望它在上面打印出来的方式返回。 用户可以选择2个文件,然后打开函数,选中的文件并按照我的for-loops所执行的方式返回 –
+0
@ErikAngerfistNyström,我更新了解决方案 – Sait
答
听起来好像你想要找回所有行的列表。
def get_rows():
rows_to_return = []
with open('file.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
rows_to_return.append(row)
return rows_to_return
而不是打印行,你可能想收集他们在列表中并返回该列表? – dursk