我正在编写一个打开csv文件并使用Kivy布局数据的应用程序。 csv文件存储在与main.py。
相同的文件夹中class BeerCellar(ScrollView):
def __init__(self, **kwargs):
super(BeerCellar, self).__init__(**kwargs)
self.beer_list = []
with open(os.path.join('beer_archive.csv'), 'rb', 1) as beer_csv:
beer_reader = csv.DictReader(beer_csv)
for beer in beer_reader:
beer_list.append(beer)
我可以使用IDLE打开csv文件,但是当我右键单击main.py并选择“发送到:Kivy 1.7.0”时,Kivy正在加载它,我收到以下错误:
File "C:\Users\Knute\Python\projects\Kivy_Stuff\Cellar\main.py", line 34, in
__init__
with open(os.path.join('beer_archive.csv'), 'rb', 1) as beer_csv:
IOError: [Errno 2] No such file or directory: 'beer_archive.csv'
文件权限设置为对所有人进行读/写 使用Windows 7,Python 2.7
答案 0 :(得分:1)
文件beer_archive.csv
不存在于您当前的工作目录中,该目录很可能是C:\Users\Knute\Python\projects\Kivy_Stuff\Cellar
文件夹。
如果没有完整路径,Python会在当前工作目录中查找,这取决于程序的启动方式以及是否有任何对os.chdir()
的调用来更改当前工作目录。
使用存档文件的完整路径:
with open(os.path.join(folder_path, 'beer_archive.csv'), 'rb', 1) as beer_csv:
其中folder_path
设置为beer_archive.csv
所在文件夹的完整路径。
请注意,如果您只是将CSV中的行追加到self.beer_list
,则可以保存循环。以下将在一个命令中执行此操作:
class BeerCellar(ScrollView):
def __init__(self, **kwargs):
super(BeerCellar, self).__init__(**kwargs)
with open(os.path.join(folder_path, 'beer_archive.csv'), 'rb', 1) as beer_csv:
self.beer_list = list(csv.DictReader(beer_csv))