Я хочу создать несколько текстовых файлов в Python. Эти файлы будут созданы при запуске кода. Я думал использоватьКак я могу написать файл Python во время выполнения?
fn = date.today().isoformat() + ".log"
или
>>> from datetime import date
>>> fn=ctime()+".txt"
>>> print fn
Thu Feb 18 22:21:35 2016.txt
так, что я могу получить уникальные имена файлов всегда. Но эксперимент кажется не очень хорошим, поскольку я хочу динамически вставлять данные в них, поскольку это может происходить из любого внешнего источника. Есть некоторые глупые ошибки, случающиеся как следует,
>>> fn = date.today().isoformat() + ".log"
>>> print fn
2016-02-18.log
>>> quit()
>>> fp = open(fn, "w")
>>> fp.write("data")
>>> fp.close()
>>> fr=open(fp,"r")
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
fr=open(fp,"r")
TypeError: coercing to Unicode: need string or buffer, file found
или
>>> fn=ctime()+".txt"
>>> print fn
Thu Feb 18 22:21:35 2016.txt
>>> line1="unanimous resolution to this effect"
>>> fp = open(fn, "w")
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
fp = open(fn, "w")
IOError: [Errno 22] invalid mode ('w') or filename: 'Thu Feb 18 22:21:35 2016.txt'
Я застревать. Но мой смысл говорит, что я могу сделать какую-то интересную ошибку. Если кто-нибудь может любезно предложить, как я могу решить проблему или решить ошибки для решения проблемы. Заранее спасибо. Я использую Python2.7.11 на ОС Windows 10.
Если вы попытаетесь использовать двоеточие в имени файла, это странно. См. [Дополнительные потоки данных Windows] (https://support.microsoft.com/en-us/kb/105763/) –
Windows не разрешает символы ':' в именах файлов. В качестве альтернативы вы также можете использовать атрибут '.name' объекта файла, который был возвращен из вызова [' tempfile.NamedTemporaryFile]() '] (https://docs.python.org/2/library/tempfile.html # tempfile.NamedTemporaryFile), чтобы получить гарантированные уникальные имена файлов (хотя они не будут красивыми). – martineau