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

Возник вопрос про запись определенных данных в файл. Как создать файл и сделать в него запись, я уже разобрался.
 l = [str(i)+str(i-1) for i in range(500)]
f = open('C:\\vidra.txt', 'w')
for index in l:
    f.write(index +'\n')
f.close()

А как быть если, к примеру я написал “программу-робота” который выводит всякую инфу о системе и не только…
 import os
import sys
import psutil
import shutil
def dupl_file(filename):
    if os.path.isfile(filename):
        newfile = filename + '.dupl'
        shutil.copy(filename, newfile)
        if os.path.exists(newfile):
            print("Файл ", newfile, " был успешно создан")
            return True
        else:
            print("Возникли проблемы при копировании")
            return False
def del_dupl(MyDir):
    file_list = os.listdir()
    os.chdir(MyDir)
    count_file = 0
    for i in file_list:
        fullname = os.path.join(MyDir, i)
        if os.path.isfile(i):
            if i.endswith('.dupl'):
                os.remove(fullname)
                count_file += 1
                print('Удален файл: ', i)
    return count_file                       
def sys_info():
    print("Количество процессоров: ", psutil.cpu_count())
    print("Платформа: ", sys.platform)
    print("Кодировка файловой системы: ", sys.getfilesystemencoding())
    print("Текущая директория: ", os.getcwd())
    print("Текущий пользователь: ", os.getlogin())
print('PC Scanner')
name = input('Назовите свое имя: ')
print("Добро пожаловать в компьютерный сканнер," ,name)
answer = ''
while answer != 'q':
	answer = input("Желаете чтобы я выполнял ваши задания? (Y/N/q)")
	if answer == 'Y':
		print("Я этому очень рад хозяин!")
		print("Вот что я умею на данный момент:")
		print(" [1] - выведу список файлов")
		print(" [2] - выведу информацию о системе")
		print(" [3] - выведу список процессов")
		print(" [4] - продублирую список файлов в текущей директории")
		print(" [5] - продублирую указанный вами файл")
		print(" [6] - удалить указанный файл")
		do = int(input("Укажите какое действие выполнить"))
		if do == 1:
			print(os.listdir())
		elif do == 2:
			print("Вот что я знаю о системе:")
			sys_info()
		elif do == 3:
			print(psutil.pids())
		elif do == 4:
			print("Дублирование файлов в текущей директории")
			file_list = os.listdir()
			i = 0
			while i < len(file_list):
				newfile = file_list[i] + '.dupl'
				shutil.copy(file_list[i], newfile) # копируй
				i += 1
		elif do == 5:
			print("Дублирование указанного файла - ")
			filename = input("Укажите имя файла: ")
			if os.path.isfile(filename):
				newfile = filename + '.dupl'
				shutil.copy(filename, newfile)
				if os.path.exists(newfile):
					print("Файл ", newfile, " был успешно создан")
				else:
					print("Возникли проблемы при копировании")
		elif do == 6:
			MyDir = input("Укажите директорию: ")
			count_file = del_dupl(MyDir)
			print("Удалено ", count_file, "файлов из: ", sys.path[0])
		else:
			pass
	# type, dir, help
	elif answer == 'N':
		print("Good Bye!")
	else:
		print("Unknown command")

Так вот у меня возник вопрос, а как данный который выводятся…
 print("Количество процессоров: ", psutil.cpu_count())
    print("Платформа: ", sys.platform)
    print("Кодировка файловой системы: ", sys.getfilesystemencoding())
    print("Текущая директория: ", os.getcwd())
    print("Текущий пользователь: ", os.getlogin())

…записать сразу в файл?

Спасибо за ответы и советы.

Всем добра.
wi34rd
поменять print на file.write?
marvellik
wi34rd
поменять print на file.write?
только в режиме дозаписи ‘a’
sepoid
Спасибо, разобрался и работает.
 f = open('C:\\test22.txt', 'a')
f.write(os.getcwd())
f.write(os.getlogin())
f.write(sys.getfilesystemencoding())
f.close()

Вот только результат в файле меня не устраивает. Не устраивает тем что там всё в кучу свалено
 BaDiC:\Users\BaDi\Desktop\pyC:\Users\BaDi\Desktop\pyBaDimbcs

Можно ли как-то упорядочить чтоб каждый новый вывод начинался с новой строки?
JOHN_16
 f.write('{}\n'.format(os.getcwd()))
sepoid
Спасибо огромное, все работает как надо.
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