从文件中读取并写入新文件的函数

问题描述:

我需要定义一个读取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搜索为****找到一个解决方案,我是新手)

+0

而不是打印行,你可能想收集他们在列表中并返回该列表? – dursk

但是当我尝试是变形点焊上不会打印出文件中的函数,只是返回对我来说

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