在python中读取csv文件时发生IO错误

在python中读取csv文件时发生IO错误,python,csv,Python,Csv,我有以下代码: for file in os.listdir('/home/sainik/Final/'+str(folderno)): if file.endswith('.csv'): print file with open(file,'rb') as csvfile: spamreader = csv.reader(csvfile) for row in spa

我有以下代码:

for file in os.listdir('/home/sainik/Final/'+str(folderno)):
        if file.endswith('.csv'):
            print file
            with open(file,'rb') as csvfile:
                spamreader = csv.reader(csvfile)
                for row in spamreader:
                    print row        
运行代码时,出现以下错误:

Traceback (most recent call last):
  File "/home/sainik/Final/Programs/sainik.py", line 28, in <module>
    with open(file,'rb') as csvfile:
IOError: [Errno 2] No such file or directory: '4.csv'
回溯(最近一次呼叫最后一次):
文件“/home/sainik/Final/Programs/sainik.py”,第28行,在
打开(文件,'rb')作为csvfile时:
IOError:[Errno 2]没有这样的文件或目录:“4.csv”

请提供帮助。

您正试图从运行脚本的路径打开文件

您应该尝试打开完整路径

with open('/home/sainik/Final/' + file)

您的脚本正在查看自己的目录中的文件
4.csv
。 试着这样做:

for file in os.listdir('/home/sainik/Final/'+str(folderno)):
        if file.endswith('.csv'):
            print file
            with open(/home/sainik/Final/'+str(folderno)+'\/'+file,'rb') as csvfile:
                spamreader = csv.reader(csvfile)
                for row in spamreader:
                    print row  

您只传递open函数的文件名。您应该向open函数传递路径。将文件路径传递给open函数的两种可能方法,即相对路径或完整路径

尝试:

with open( os.path.join('/home/sainik/Final/',str(folderno),file),'rb') as csvfile: