Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 26, 2017 22:47:16

sepoid
Зарегистрирован: 2016-07-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Впоросик про запись в файл

Всем доброе время суток.

Возник вопрос про запись определенных данных в файл. Как создать файл и сделать в него запись, я уже разобрался.

 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())

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

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

Всем добра.

Офлайн

#2 Фев. 27, 2017 01:05:19

wi34rd
Зарегистрирован: 2016-10-08
Сообщения: 89
Репутация: +  2  -
Профиль   Отправить e-mail  

Впоросик про запись в файл

поменять print на file.write?

Офлайн

#3 Фев. 27, 2017 08:41:44

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Впоросик про запись в файл

wi34rd
поменять print на file.write?
только в режиме дозаписи ‘a’

Офлайн

#4 Фев. 27, 2017 20:35:11

sepoid
Зарегистрирован: 2016-07-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Впоросик про запись в файл

Спасибо, разобрался и работает.

 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

Можно ли как-то упорядочить чтоб каждый новый вывод начинался с новой строки?

Офлайн

#5 Фев. 27, 2017 22:32:47

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Впоросик про запись в файл

 f.write('{}\n'.format(os.getcwd()))



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Фев. 27, 2017 22:41:42

sepoid
Зарегистрирован: 2016-07-24
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Впоросик про запись в файл

Спасибо огромное, все работает как надо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version