我正在编写一个程序,它应该读取目录中的许多csv文件,并对每个文件进行一些分析.我有这些功能:
# Function reads in files and saves data into 2 dimensional array
def ReadInFiles(name):
try:
data = []
fname = csv.reader(open(name, 'r'))
#print 'read in file: ' + str(fname)
rowCount = 0
for row in fname:
if rowCount != 0: # skip headings
data.append(row)
rowCount += 1
#print name + ' ' + str(row) + ' read in successfully \n'
except IOError: "Can't read files"
return data
#Function reads in files in a folder
def ReadDirectory (dirName):
try:
Data = []
for files in os.listdir(dirName):
print '\n FILE: ' + files
Data = ReadInFiles(files)
AnalyzeData(Data, daysElapsed, columns = 4)
except IOError:
print 'Directory does not exist!'
return
Run Code Online (Sandbox Code Playgroud)
关于它的奇怪之处在于,如果我忽略ReadDirectory函数并仅使用ReadInFile函数,它可以正常工作(文件被读入而没有任何问题)但是一旦我从ReadDirectory调用ReadInFunction,我得到错误IOError:[Errno2] File或目录不存在:logfile.csv使用os.listdir列出目录中的文件也可以正常工作.
我有包含csv文件的文件夹作为包含源代码的目录中的子目录.我注意到如果我将文件的副本也放在源代码目录中,我的脚本工作正常,但如果我删除这些副本,我会再次开始收到错误.
我搜索过以前的帖子,尝试过双斜线,/但没有任何效果.我已经检查了文件夹的权限,但它也没有帮助.
任何帮助将不胜感激!!
谢谢.
PS我是python的新手,所以请原谅我可能不好的代码
os.listdir()
返回不包含文件所在目录名称的裸文件名.
你可能意味着:
Data = ReadInFiles(os.path.join(dirName, files))
Run Code Online (Sandbox Code Playgroud)
PS为什么files
复数是指单个文件名?
PPS以下except
块没有做任何有用的事情,并且悄悄忽略所有错误:
except IOError: "Can't read files"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2867 次 |
最近记录: |