Как добавить в конец файла число, соответствующее количеству файлов в этой папке? - PullRequest
0 голосов
/ 18 сентября 2018

Когда я запускаю этот скрипт, я хотел бы подсчитать файлы в подкаталоге, обозначенном в save_path, и добавить это число к создаваемому файлу.

Например: если C:/xampp/htdocs/add/text/ имеет 1файл, который Text0.php, то при следующем запуске этого скрипта он должен создать новый файл с именем Text1.php.

. Это мой код:

import os.path

save_path = 'C:/xampp/htdocs/add/text/'
name_of_file = 'Text'
completeName = os.path.join(save_path, name_of_file+".php")

file1 = open(completeName, 'w')
file1.write('it worked')
file1.close()

Этот скриптсоздает файл Text.php и сохраняет его в C:/xampp/htdocs/add/text/Text.php.

Я ищу, сколько файлов уже есть в C:/xampp/htdocs/add/text/, а затем добавляю это число к следующему файлу, созданному следующим образом: Text + 'file_count' + '.php'

logic:
if sub-directory has 1 file:
Text1.php
if sub-directory has 2 files:
Text2.php 
if sub-directory has 3 file:
Text3.php
if sub-directory has 4 files:
Text4.php 

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

Ответы, выдвинутые другими, помогли мне создать программу, которая при каждом вызове файла .py подсчитывает количество файлов в подкаталоге, добавляет его к имени файла и создает файл

Код, который я использовал:

 path, dirs, files = next(os.walk("C:/xampp/htdocs/addfiles/text/"))
 file_count = len(files)
 save_path = 'C:/xampp/htdocs/addfiles/text/'
 name_of_file = 'text'
 completeName = os.path.join(save_path, name_of_file + str(file_count) + ".php")         

после выполнения этого 3 раза я получил:

['text0.php', 'text1.php', 'text2.php'] in the .../text directory 

, если вы хотите сначала создать 'text1.php' вместо 'text0.php 'затем внесите изменения в file_count

file_count = len(files) + 1

после трехкратного запуска, вы получите:

['text1.php', 'text2.php', 'text3.php']

я также обнаружил, что запись в этот вновь созданный файл очень проста позжев своем коде я добавляю

page = 'content you want to add to this file'
file1 = open(completeName, 'w+')
csv_writer = csv.writer(file1)
csv_writer.writerow(page)
0 голосов
/ 18 сентября 2018

Было бы лучше сделать это в каком-то цикле. Вы пытаетесь увеличить значение, создать имя файла на основе этого значения и исходного имени, а затем использовать его и путь для создания файла. Исходя из вашего кода это может выглядеть примерно так:

for i in range(10):
    completeName = os.path.join(save_path, name_of_file+str(i)+".txt") 
    file1 = open(completeName, 'w+')
    toFile = 'it worked'
    file1.write(toFile)
    file1.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...