Если вы можете принять формат строк, особенно, что item.Name
не содержит ,
void parseFromString(string str, out int id, out string name, out int count)
{
string[] parts = str.split(',');
id = int.Parse(parts[0]);
name = parts[1];
count = int.Parse(parts[2]);
}
Это просто сделает то, что вы хотите, но я бы предложил вам добавить некоторую проверку ошибок. Еще лучше рассмотреть сериализацию / десериализацию в XML или JSON.
Вы увидите это ошибка, если каталог , содержащий файл, который вы пытаетесь открыть, не существует, даже при попытке открыть файл в режиме «w».
Поскольку вы открываете файл с относительным путем, возможно, вы не совсем понимаете, что это за каталог. Попробуйте быстро напечатать для проверки:
import os
curpath = os.path.abspath(os.curdir)
packet_file = "%s/%s/%s/%s.mol2" % ("dir", "dir2", "dir3", "some_file")
print "Current path is: %s" % (curpath)
print "Trying to open: %s" % (os.path.join(curpath, packet_file))
packetFile = open(packet_file, "w")
Убедитесь, что у сценария есть права на запись в этот каталог. Попробуйте следующее:
chmod a+w dir/dir2/dir3
Обратите внимание, что это предоставит права на запись всем в этом каталоге.
Поскольку у вас нет «начального» слэша, ваш скрипт python ищет этот файл относительно текущего рабочего каталога (а не корня файловой системы). Также обратите внимание, что каталоги, ведущие к файлу, должны существовать!
И: используйте os.path.join для объединения элементов пути.
например: os.path.join ("dir", "dir2", "dir3", "myfile.ext")