我无法弄清楚我在这段代码中做错了什么。它似乎陷入无限循环,我必须杀死这个过程。最后,这段代码将用于将文件转换为Geojson格式,但在开始写入Geojson之前,我想确保我可以打开并附加到字典中。
我发现在尝试将csv文件附加到列表并打印出列表后(第23行,请注意此打印行仅用于帮助我解决问题),只有1行数据(应该有更多,可能是20-30行不同的列长。是的,我已经检查了输入文件。)我也尝试在另一个程序上运行csv输入,没有问题,所以我怀疑问题是我写的代码中的问题。
感谢您的帮助。
import csv
def main():
try:
strFOLDER = ( r'/Users/Smithy/Documents/Pycharm/' + '/')
strFILE = raw_input("Enter the name of file " )
my_file = strFOLDER + strFILE
except IOError:
print 'Cannot read/locate file error'
try:
fp = open(my_file, 'rU')
my_data = csv.reader(fp)
except IOError:
print 'Cannot read/locate file error'
my_list = []
my_dictionary = {}
for row in my_data:
my_list.append(row)
print my_list
list_len = len(my_list)
num_count = 0
while num_count < list_len:
if (num_count < (list_len-2)):
my_dictionary['name'] = [1]
my_dictionary['location'] = ([num_count+2], [num_count+3])
my_list.append(my_dictionary)
num_count+=2
main()
答案 0 :(得分:0)
在while
循环中,如果(num_count&gt;(list_len-2)),则不执行任何操作,因此此循环不会结束,并且仅显示第一行。
更确切地说,当你将第一行追加到my_list
时,这一行的长度为1. if子句变为if (num_count < (1 - 2))
,这显然不会发生。
答案 1 :(得分:0)
您已陷入while
循环。
你的问题是num_count+=2
永远不会发生,除非num_count < (list_len-2)
恰好是真的。第一次附加list_len
时1
等于num_count
,因此Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));
永远不会增加。