python - 文件

In [1]: f = open("/etc/passwd","r")  #使用open函数打开文件

In [2]: f
Out[2]: <_io.TextIOWrapper name='/etc/passwd' mode='r' encoding='UTF-8'>

In [3]: type(f)
Out[3]: _io.TextIOWrapper

In [5]: import os  #打开文件前可以判断文件在不在

In [6]: if os.path.isfile("/tmp/test"):
   ...:     print("exist")
   ...: else:
   ...:     print("not exist")
   ...:
not exist

In [7]: print(f)
<_io.TextIOWrapper name='/etc/passwd' mode='r' encoding='UTF-8'>

In [8]: c=f.read()  #读取文件使用read

In [9]: print(c)   

In [15]: f = open("/etc/passwd","r")

In [16]: print(f.readline())   #readline逐行读取,变成一个列表
root:x:0:0:root:/root:/bin/bash


In [17]: print(f.readline())
bin:x:1:1:bin:/bin:/sbin/nologin

Python的read函数有多种读取模式,具体取决于文件的需要读取方式。以下是几种常见的读取模式:

  1. “r”:只读模式。以文本格式读取文件内容,默认模式。
  2. “rb”:以二进制格式只读模式读取文件内容。
  3. “r+”:读写模式。可以同时读取和写入文件。
  4. “w”:写入模式。以文本格式写入文件内容,如果文件不存在则创建新文件,如果文件已存在则清空原有内容。
  5. “wb”:以二进制格式写入文件内容。
  6. “w+”:读写模式。可以同时读取和写入文件,如果文件不存在则创建新文件,如果文件已存在则清空原有内容。
  7. “a”:追加模式。以文本格式追加写入文件内容,如果文件不存在则创建新文件。
  8. “ab”:以二进制格式追加写入文件内容。
  9. “a+”:读写模式。可以同时读取和追加写入文件内容,如果文件不存在则创建新文件。

在Python中,open()函数返回一个文件对象,可以使用以下方法来对文件进行操作:

  1. read(size=-1): 以字符串的形式读取文件的内容。可选参数size表示要读取的字节数,默认为-1,表示读取整个文件。
  2. readline(size=-1): 读取一行文件内容,并以字符串形式返回。可选参数size表示要读取的字节数,默认为-1,表示读取整行。
  3. readlines(hint=-1): 读取所有行的内容,并返回一个列表,每个元素是文件的一行。可选参数hint表示要读取的字节数的提示 ,默认为-1,表示读取所有行。
  4. write(str): 将字符串str写入文件。返回写入的字符数。
  5. writelines(sequence): 将字符串序列sequence写入文件。
  6. seek(offset[, whence]): 将文件指针移动到指定位置。参数offset表示偏移量,参数whence表示起始位置,默认为0,表示从文件开头开始计算偏移量。
  7. tell(): 返回当前文件指针位置的字节数。
  8. close(): 关闭文件。

这些是文件对象的一些常用方法,可以根据需要选择合适的方法来读取或写入文件。

In [18]: f = open("/etc/passwd","r")  #读取模式

In [19]: print(f.readlines())

In [24]: f = open("/tmp/test", "w")

In [25]: f.write("test file\n")  #写入文字
Out[25]: 10

In [26]: f.write("one more row") #再写入
Out[26]: 12

In [27]:

In [27]: f.write(".\n")  #写入换行
Out[27]: 2

In [28]: f.close()  #需要关闭

In [29]: cat /tmp/test  #确认情况
test file
one more row.

[root@learning ~]# cat mv.py   #文件a内容写进文件b
def move_content(file_a, file_b):
    try:
        with open(file_a, 'r') as f1:
            data = f1.read()
        with open(file_b, 'w') as f2:
            f2.write(data)
        print("Content moved from", file_a, "to", file_b)
    except FileNotFoundError:
        print("File not found")

# Example usage
file_a = '/root/try.py'  # Replace with the source file nam
file_b = '/root/destination.py'  # Replace with the destination file name
move_content(file_a, file_b)
[root@learning ~]# python3.11 mv.py
Content moved from /root/try.py to /root/destination.py
[root@learning ~]# cat ./destination.py
try:
    x = 10 / 0
except ZeroDivisionError:
    print("Division by zero is not allowed")

在Python中,seek()是一个文件对象的方法,用于更改当前文件指针的位置。文件指针表示从文件开头到当前位置的字节数。seek()方法带有一个必需的参数,指定要移动的字节数以及一个可选的偏移位置。它的语法为:

file_object.seek(offset, whence)
  • offset:要移动的字节数
  • whence:可选的参数,默认为0,指定从文件开头(0),当前位置(1)或文件末尾(2)进行查找

通过使用seek()方法,您可以在文件中自由地移动文件指针,并可以执行读取或写入操作定位到不同的位置。

In [11]: f = open("/tmp/test", "a")

In [12]: cat /tmp/test
test file
one more row.
abcabc
In [13]: f.write('abc')  #写入
Out[13]: 3

In [14]: f.close()

In [15]: cat /tmp/test
test file
one more row.
abcabcabc

In [16]: f = open("/tmp/test", "a")

In [17]: f.close()

In [18]: f = open("/tmp/test", "a+")

In [19]: f.write("123\n")  #写入
Out[19]: 4

In [20]: f.seek(0)  #重置到0的位置,没有这句后面语句位置是最后,后面读取为空
Out[20]: 0

In [21]: print(f.read())
test file
one more row.
abcabcabc123
  1. 获取当前工作目录:
import os

current_dir = os.getcwd()
print("Current working directory:", current_dir)
  1. 创建目录:
import os

os.mkdir("new_directory")
  1. 创建多级目录:
import os

os.makedirs("parent_directory/child_directory/grandchild_directory")
  1. 列出目录下的所有文件和子目录:
import os

files_and_directories = os.listdir("directory_path")
for item in files_and_directories:
    print(item)
  1. 删除目录:
import os

os.rmdir("directory_path")
  1. 获取文件或目录的权限信息:
import os

# 获取文件或目录的权限
file_permissions = os.stat("file_path").st_mode

# 转换权限信息为八进制形式
octal_permissions = oct(file_permissions & 0o777)
print("File permissions in octal:", octal_permissions)
  1. 设置文件或目录的权限:
import os

# 设置文件或目录的权限为读写执行权限
os.chmod("file_path", 0o777)
  1. 获取文件或目录的属主信息:
import os

# 获取文件或目录的属主
file_owner = os.stat("file_path").st_uid
print("File owner:", file_owner)
  1. 设置文件或目录的属主:
import os

# 设置文件或目录的属主
os.chown("file_path", new_owner, group_owner)
In [29]: import os

In [30]: os.mkdir("/tmp/nihao")

In [31]: os.chdir("/tmp")

In [32]: os.getcwd()
Out[32]: '/tmp'

In [33]: os.chdir("/")

In [34]: os.getcwd()
Out[34]: '/'

In [35]: os.rmdir("/tmp/nihao")

In [37]: os.chdir("/root")

In [38]: os.chmod("try.py",777)

In [39]: os.chown("try.py",0,1000)

In [40]: os.listdir(".")
Out[40]:
['test3.py',
 '.pip']

你可能感兴趣的:(python,java,前端)