Найти - Пользователи
Полная версия: Запись в файл
Начало » Python для новичков » Запись в файл
1 2
el_gato_de_ch
Всем привет.

есть вот такой скрипт
import sys
import os.path
if __name__ == "__main__":
	sys.stderr=open('train.txt', 'w+')
	#f = open("train1.txt", "w+")
	if len(sys.argv) != 2 :
		print ("usage: create_csv <base_path>")
		sys.exit(1)
	
	#f.write("Hello world")
	
	BASE_PATH = sys.argv[1]
	SEPARATOR = ";"
	
	label = 0
	
	for dirname, dirnames, filenames in os.walk(BASE_PATH) :
		for subdirname in dirnames :
			subject_path = os.path.join(dirname, subdirname)
			for filename in os.listdir(subject_path) :
				abs_path = "%s/%s" % (subject_path, filename)
#				f.write("%s%s%d" % (abs_path, SEPARATOR, label))
				print ("%s%s%d" % (abs_path, SEPARATOR, label))
			++label
	print (os.path.dirname(__file__))
	
	#f.close()
суть в том, что всё что выводится в консоль, должно выводиться в файл.
Вывод в консоль работает корректно.
Однако, при попытке работы с файлом случается что-то непредвиденное, файл просто не создаётся.
Прежде чем писать этот пост, я попробовал :
- делать через f = open(“filename”, “w”) - РЕЗУЛЬТАТ: после выполнения скрипта, файл отсутствует
- перенаправлять поток sys.stderr=open('train.txt', ‘w+’) - РЕЗУЛЬТАТ: same as previous

Я использую python3.3, для выполнения скрипта - консоль cmd.exe, Интересный факт, что если консоль запущена без прав админа, то скрипт выдаёт permition denied, при попытке доступа к файлу, OS Win7

Сам я в python уже несколько часов ( 5 если быть точным, до этого дел не имел) поэтому прошу помощи у более продвинутых товарищей.

FishHook
++label

А когда в питоне появился такой оператор?
el_gato_de_ch
даже после замены на label = label + 1
файл всё равно не создаётся

UPD.

даже после замены stderr на stdout результат - файла нет,
UPD1

Интересный факт, что если запустить поиск файлов и указать train.txt, то находится ярлык, на этот файл, но пишут, что файл был удалён, ярлык ссылается на файл который был создан в папке со скриптом
FishHook
Вот так создается?
if __name__ == "__main__":
    f = open("train1.txt", "w+")
    f.write("Hello world")
Shaman
import sys
import os.path
if __name__ == "__main__":
	sys.stdout=open('train.txt', 'w+')
	if len(sys.argv) != 2 :
		print ("usage: create_csv <base_path>")
		sys.exit(1)
	
	BASE_PATH = sys.argv[1]
	SEPARATOR = ";"
	
	label = 0
	
	for dirname, dirnames, filenames in os.walk(BASE_PATH) :
		for subdirname in dirnames :
			subject_path = os.path.join(dirname, subdirname)
			for filename in os.listdir(subject_path) :
				abs_path = "%s/%s" % (subject_path, filename)
				print ("%s%s%d" % (abs_path, SEPARATOR, label))
			label += 1
	print (os.path.dirname(__file__))
Вот это у меня отработало, хоть и извращение.
el_gato_de_ch
неа
только, я ещё файл закрываю в конце f.close()

UPD. Удалил строчку f.close() скрипт работает, файла нет,
Shaman
>>> a = 1
>>> ++a
1
>>> +++a
1
>>> +++++++++++a
1
>>> -a
-1
>>> --------a
1
>>> ---a
-1
>>> 
el_gato_de_ch
Shaman
Нифига скрипт не работает, может быть
Shaman
import sys
import os.path
if __name__ == "__main__":
	f=open('train.txt', 'w+')
	if len(sys.argv) != 2 :
		print("usage: create_csv <base_path>")
		sys.exit(1)
	
	BASE_PATH = sys.argv[1]
	SEPARATOR = ";"
	
	label = 0
	
	for dirname, dirnames, filenames in os.walk(BASE_PATH) :
		for subdirname in dirnames :
			subject_path = os.path.join(dirname, subdirname)
			for filename in os.listdir(subject_path) :
				abs_path = "%s/%s" % (subject_path, filename)
				print ("%s%s%d" % (abs_path, SEPARATOR, label), file=f)
			label += 1
	print(os.path.dirname(__file__), file=f)
	f.close()
Так более причесанно.
el_gato_de_ch, там у вас что-то системное.
FishHook
el_gato_de_ch
неа
только, я ещё файл закрываю в конце f.close()
UPD. Удалил строчку f.close() скрипт работает, файла нет,
странно, а ты файл где ищешь?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB